<?xml version="1.0" encoding="iso-8859-1" ?>




<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title><![CDATA[Toxic Shock Syndrome TSS all News Posts]]> </title>
<description><![CDATA[ Toxic Shock Syndrome TSS(toxicsyndrome.com) News ]]> </description>
<link>http://www.toxicsyndrome.com</link>


<language>en</language>
<lastBuildDate>Tue, 31 Aug 2010 00:30:04 GMT</lastBuildDate><image><title>Toxic Shock Syndrome TSS all News Posts</title><url><![CDATA[http://spruz.websnapr.com?size=S&url=http://toxicsyndrome.com]]></url><link>http://www.toxicsyndrome.com</link></image><item><title><![CDATA[Bad Company 2]]></title><description><![CDATA[<p>
	Got this the other day and I&#39;m loving it. I was in the BETA and the BETA was so lame compared to the retail version. Guess they actually used the BETA to improve things.</p>
<p>
	Anyways, I move back to days at the end of the week. So I will be on weeknights again. So happy to be done with the overnight shift.</p>
<p>
	Hope to see you guys on BC2. My in-game name is Lokster. And I&#39;ll be wearing the TSS tag as always.</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/BAd-Company-2/blog.htm ]]></link><pubDate>Thu, 20 May 2010 03:06:59 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/BAd-Company-2/blog.htm ]]></guid></item><item><title><![CDATA[What&#39;s everyone playing these days?]]></title><description><![CDATA[<p>
	I haven&#39;t been around... assuming anyone in this joint knows who I am.&nbsp;Full time biology major with two part time jobs keep a man busy enough to forget the pleasures of FPS&#39;s. Anyways, what&#39;s everyone playing and how do we communicate now?<br />
	&nbsp;</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Whats-everyone-playing-these-days/blog.htm ]]></link><pubDate>Wed, 28 Apr 2010 10:40:36 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Whats-everyone-playing-these-days/blog.htm ]]></guid></item><item><title><![CDATA[teamspeak]]></title><description><![CDATA[<p>
	&nbsp;is our teamspeak done</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/teamspeak/blog.htm ]]></link><pubDate>Mon, 12 Apr 2010 16:46:21 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/teamspeak/blog.htm ]]></guid></item><item><title><![CDATA[Anyone else playing the BFBC2 beta?]]></title><description><![CDATA[<p>
	I preordered&nbsp;BFBC2&nbsp;and received a beta key a couple of days ago. Maybe it&#39;s just the map they chose for the beta, but I&#39;m not liking it. I guess they&#39;ve added &quot;realism&quot; to the game but I find it visually annoying. Like the blood-splattered vision when you&#39;re wounded. Or like when&nbsp;I switch to the scope view on the sniper rifle and it looks like $10 scope from K-mart. Makes&nbsp;me want to clean the lens. I&#39;m kinda sorry I ordered it now. Maybe some of the other maps will make it a bit more enjoyable. Then again you may never pry me out of Karkand...&nbsp;&nbsp;</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Anyone-else-playing-the-BFBC2-beta/blog.htm ]]></link><pubDate>Wed, 24 Feb 2010 01:24:54 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Anyone-else-playing-the-BFBC2-beta/blog.htm ]]></guid></item><item><title><![CDATA[Rotated Shift ... ]]></title><description><![CDATA[<p>
	Just letting everyone know I have rotated shifts. Which effectively means I can&#39;t game at all during the week as I get off every morning around 0800. I will only be able to play on Sundays-Tuesdays -- which are my days off ... </p>
<p>
	We have any plans for upcoming games?? I&#39;m playing the new Battlefield beta ( Bad Company 2 ). It&#39;s lookin pretty good. </p>
<p>
	<br />
	-Loki</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Rotated-Shift-...-/blog.htm ]]></link><pubDate>Thu, 4 Feb 2010 14:51:06 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Rotated-Shift-...-/blog.htm ]]></guid></item><item><title><![CDATA[Update TeamSpeak 3]]></title><description><![CDATA[<p>
	I noticed some people are still running TeamSpeak 3 beta 2.&nbsp; It&#39;s a good idea to download the newer beta: TeamSpeak beta 12.&nbsp; </p>
<p>
	<a href="http://www.teamspeak.com/?page=downloads" target="_blank">http://www.teamspeak.com/?page=downloads<br />
	</a></p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Update-TeamSpeak-3/blog.htm ]]></link><pubDate>Sun, 31 Jan 2010 18:20:20 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Update-TeamSpeak-3/blog.htm ]]></guid></item><item><title><![CDATA[Headset broke ... sigh]]></title><description><![CDATA[<p>
	So my awesome sound canceling headphone/mic combo broke the other day. I went to take them off, and the thing literally snapped right in the center. I was like wtf? Hence my absence from MW2. I went to exchange the set I had for a new set and they were out, so I got a different brand/model that was about the same price. And it&#39;s a complete piece of garbage. </p>
<p>
	I tried to play with it but can&#39;t tell where the hell anyone is shooting from. It&#39;s like there is no distinction between left and right or front and rear ..&nbsp; It&#39;s so frustrating, I can&#39;t even play. Getting a new set tomorrow, then I&#39;ll hopefully be back in game. </p>
<p>
	<br />
	Cya all then.</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Headset-broke-...-sigh/blog.htm ]]></link><pubDate>Mon, 18 Jan 2010 04:58:10 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Headset-broke-...-sigh/blog.htm ]]></guid></item><item><title><![CDATA[TSS]]></title><description><![CDATA[<p>
	I was sitting in health class not paying any attention, and i heard my teacher say something about TSS. So i started listening and learned alot about it, needless to say i was pretty disgusted. The rest of the day all i could thing about was call of duty.</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/TSS/blog.htm ]]></link><pubDate>Fri, 15 Jan 2010 00:00:10 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/TSS/blog.htm ]]></guid></item><item><title><![CDATA[New Steam Acct.]]></title><description><![CDATA[<p>
	&nbsp;yo, boulder, i got a new steam account, so send me an invite to the TSS group on steam.&nbsp;</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/New-Steam-Acct./blog.htm ]]></link><pubDate>Thu, 14 Jan 2010 23:50:39 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/New-Steam-Acct./blog.htm ]]></guid></item><item><title><![CDATA[Moving COD from PC to Another.]]></title><description><![CDATA[<p>
	&nbsp;Hey Guys</p>
<p>
	&nbsp;</p>
<p>
	If I&nbsp;move Sgt. Shepherds game from my computer to his is there a way to move his stats etc?</p>
<p>
	I could pick up another copy for him but he wants to retain his progress so far. So most likely I&#39;ll unistall his game from my computer and get myself a copy.</p>]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Moving-COD-from-PC-to-Another./blog.htm ]]></link><pubDate>Mon, 28 Dec 2009 18:58:16 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Moving-COD-from-PC-to-Another./blog.htm ]]></guid></item><item><title><![CDATA[Happy Ho&ndash;lidays!]]></title><description><![CDATA[<p>
	&nbsp;Just wanted to say everyone have a merry frickin xmas! I&#39;ll be back on monday.</p>
<p>
	Oh ya.....You are all hacks!</p>
<p>
	&nbsp;</p>
<p>
	Your dirty grease monkey,</p>
<p>
	Cobalt</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Happy-Ho-lidays/blog.htm ]]></link><pubDate>Thu, 24 Dec 2009 07:09:38 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Happy-Ho-lidays/blog.htm ]]></guid></item><item><title><![CDATA[Vent Out... Teamspeak 3 In...]]></title><description><![CDATA[<p>
	<span style="font-size: 28px;">We will be moving to teamspeak 3 as it is now superior in quality to vent 3.&nbsp;</span></p>
<p>
	<span style="font-size: 28px;">Download Teamspeak 3 client here: <a href="http://www.teamspeak.com/?page=teamspeak3" target="_blank">http://www.teamspeak.com/?page=teamspeak3</a></span></p>
<p>
	<span style="color: rgb(255, 0, 0);"><span style="font-size: 36px;">IP: 72.18.157.18:9104</span></span></p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Vent-Out...-Teamspeak-3-In.../blog.htm ]]></link><pubDate>Tue, 22 Dec 2009 02:30:06 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Vent-Out...-Teamspeak-3-In.../blog.htm ]]></guid></item><item><title><![CDATA[So I suppose I&#39;ll]]></title><description><![CDATA[<p>
	... get a new mic today. Tried to use my headset mic combo dealio a few days ago, and it was a no go. I&#39;ll see about getting a new combo dealio today sometime. Then perhaps I will actually talk once ina while on vent ;). </p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/So-I-suppose-Ill/blog.htm ]]></link><pubDate>Mon, 14 Dec 2009 20:24:33 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/So-I-suppose-Ill/blog.htm ]]></guid></item><item><title><![CDATA[Wisconsin blows]]></title><description><![CDATA[<p>
	&nbsp;Today&#39;s high temperature....4 degrees.&nbsp;&nbsp;&nbsp; just had to put that out there</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/Wisconsin-blows/blog.htm ]]></link><pubDate>Thu, 10 Dec 2009 15:34:01 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/Wisconsin-blows/blog.htm ]]></guid></item><item><title><![CDATA[TSS Gaming Groups]]></title><description><![CDATA[<p>
	<span style="color: #f00">I have updated the logos and also created a L4D division. All the logos are&nbsp;respective of each division. Please add yourself to your respective game or games. Registered members can&nbsp;join a group without approval. You can join the groups&nbsp;through the link&nbsp;on the main page or <a href="http://toxicsyndrome.com/groups.htm">HERE</a>.&nbsp;</span></p>
<p>
	<span style="color: #f00">- Payless</span></p>
<p>
	<span style="color: #f00"><img align="middle" alt="L4D Gaming Division" height="199" src="http://pixelatedgeek.com/wp-content/uploads/2009/06/l4d2_logo01_pixelatedgeek1-572x380.jpg" width="300" /></span></p>
<p>
	<span style="color: #f00"><img align="middle" alt="Call of Duty MW2 Division" height="194" src="http://mattyblog.cookynet.com/front/cod_mw2-logo.jpg" width="300" /></span></p>
<p>
	<span style="color: #f00"><img align="middle" alt="BF2 Gaming Division" height="176" src="http://www.nanospy.de/media/bf2/logo.jpg" width="300" /></span></p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/TSS-Gaming-Groups/blog.htm ]]></link><pubDate>Thu, 3 Dec 2009 19:10:43 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/TSS-Gaming-Groups/blog.htm ]]></guid></item><item><title><![CDATA[TSS Contact form and Bulletin Board]]></title><description><![CDATA[<p>
	<u><strong>TSS Contact form:</strong></u></p>
<p>
	The contact form is up and running.&nbsp;Located on the Navigation Bar.</p>
<p>
	<u><strong>Community Bulletin Board:</strong></u></p>
<p>
	A new bulleting board in the main page is up.&nbsp;This will be quick post it type notes so all members can see when they bring up the main page.&nbsp;</p>
<p>
	&nbsp;</p>
<p>
	- Payless</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/TSS-Contact-form-and-Bulletin-Board/blog.htm ]]></link><pubDate>Tue, 1 Dec 2009 22:15:45 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/TSS-Contact-form-and-Bulletin-Board/blog.htm ]]></guid></item><item><title><![CDATA[TSS IM Chat]]></title><description><![CDATA[<p>
	&nbsp;If you already haven&#39;t notice I have integrated internal chat between online members on the website. When you login you will see a friends bar at the bottom of the page. When other users are online you will be able to send them a message when you are on.</p>
<p>
	<img alt="" height="161" src="http://law.anu.edu.au/Alumni/news/Autumn2008/chat.jpg" width="212" /></p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/TSS-IM-Chat/blog.htm ]]></link><pubDate>Tue, 1 Dec 2009 19:37:46 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/TSS-IM-Chat/blog.htm ]]></guid></item><item><title><![CDATA[TSS Sign in Authentication]]></title><description><![CDATA[<p>
	For users willing to do so. I have integrated our site with single authentication to your favorite websites. So for instance. If you use Facebook you can register with TSS using your Facebook authentication. TSS also now offers single sign in for Hotmail, Gmail,&nbsp; and Yahoo Mail. </p>
<p>
	<br />
	If you are going to re-register under a single sign in. Please let me know and I will delete your old account so we don&#39;t have duplicates.</p>
<div id="doc3">
	<div id="content">
		<br />
		<div class="button-page provider-container" id="page2" style="display: none;">
			<h2 style="font-size: 116%; margin-top: 0pt;">
				Select one of these third-party accounts</h2>
			<div class="container" id="page2-container">
				&nbsp;</div>
		</div>
		<div class="provider-container" id="google" style="display: none;">
			<div class="errors" id="google-error-box" style="display: none;">
				&nbsp;</div>
			<div class="provider-controls">
				<button id="google-button" onclick="authStart("google");" style="vertical-align: baseline;">Sign In &raquo;</button></div>
		</div>
		<div class="provider-container" id="live_id" style="display: none;">
			<div class="errors" id="live_id-error-box" style="display: none;">
				&nbsp;</div>
			<div class="provider-controls">
				<button id="live_id-button" onclick="authStart("live_id");" style="vertical-align: baseline;">Sign In &raquo;</button></div>
		</div>
		<div class="provider-container" id="yahoo" style="display: none;">
			<div class="errors" id="yahoo-error-box" style="display: none;">
				&nbsp;</div>
			<div class="provider-controls">
				<button id="yahoo-button" onclick="authStart("yahoo");" style="vertical-align: baseline;">Sign In &raquo;</button></div>
		</div>
		<div class="provider-container" id="facebook" style="display: none;">
			<div class="errors" id="facebook-error-box" style="display: none;">
				&nbsp;</div>
			<div class="provider-controls">
				<button id="facebook-button" onclick="authStart("facebook");" style="vertical-align: baseline;">Sign In &raquo;</button></div>
		</div>
		<a class="more-link" href="https://tss-sign-in.rpxnow.com/" id="different_provider" style="display: none;">Choose a different provider</a>
		<div class="powered_by_popup" id="poweredby" style="display: block;" title="Get your own free hosted login service">
			<span style="text-decoration: underline;"><img alt="" height="320" src="https://rpxnow.com/images/rpxnow-virgin.jpg" width="463" /><br />
			</span></div>
	</div>
	<script src="https://ajax.googleapis.com/ajax/libs/yui/2.6.0/build/cookie/cookie-min.js" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/yui/2.6.0/build/connection/connection-min.js" type="text/javascript"></script> <script src="https://ajax.googleapis.com/ajax/libs/yui/2.6.0/build/element/element-beta-min.js" type="text/javascript"></script> <script src="https://tss-sign-in.rpxnow.com/javascripts/auth.js?v=2" type="text/javascript"></script> <script type="text/javascript">
var config = {"openid_start_url":"https:\/\/tss-sign-in.rpxnow.com\/openid\/start","prediscover_url":"https:\/\/tss-sign-in.rpxnow.com\/prediscover","provider_info":{"yahoo":{"type":"op","supports_popup":true,"endpoint":"http:\/\/yahoo.com\/"},"google":{"type":"op","supports_popup":true,"endpoint":"https:\/\/www.google.com\/accounts\/o8\/id"},"live_id":{"type":"custom","start_url":"https:\/\/tss-sign-in.rpxnow.com\/liveid\/start?flags=show_provider_list%2Cno_email_required%2Ctesting&token_url=https%3A%2F%2Frpxnow.com%2Frelying_parties%2Ftss-sign-in%2Ftest","supports_popup":false},"facebook":{"api_key":"5a7ff7eb8714edefc72c104477f49a01","type":"custom","use_connect":false,"start_url":"https:\/\/tss-sign-in.rpxnow.com\/facebook\/start?flags=show_provider_list%2Cno_email_required%2Ctesting&token_url=https%3A%2F%2Frpxnow.com%2Frelying_parties%2Ftss-sign-in%2Ftest","supports_popup":false}},"last_successful":null,"last_tried":"live_id","popup":false,"enabled_providers":["google","live_id","yahoo","facebook"]};
var background_color = "#F6F6F6";
var provider_names = config.enabled_providers;
var sprites = {"url":"https://s3.amazonaws.com/static.rpxnow.com/images/auth-sprite.png/eb6145fbe18404549c83c0eb6559236a.png","sprites":{"buttons/live_id_wide.png":{"width":150,"height":50,"top":0,"left":0},"buttons/yahoo_wide.png":{"width":150,"height":50,"top":50,"left":0},"buttons/myspace_wide.png":{"width":150,"height":50,"top":100,"left":0},"buttons/facebook_wide.png":{"width":150,"height":50,"top":150,"left":0},"buttons/aol_wide.png":{"width":150,"height":50,"top":200,"left":0},"buttons/google_wide.png":{"width":150,"height":50,"top":250,"left":0},"buttons/openid_wide.png":{"width":150,"height":50,"top":300,"left":0},"buttons/button_wide.png":{"width":150,"height":50,"top":350,"left":0},"buttons/button_wide_flip.png":{"width":150,"height":50,"top":400,"left":0},"buttons/livejournal_wide.png":{"width":150,"height":50,"top":450,"left":0},"buttons/myopenid_wide.png":{"width":150,"height":50,"top":500,"left":0},"buttons/flickr_wide.png":{"width":150,"height":50,"top":550,"left":0},"buttons/blogger_wide.png":{"width":150,"height":50,"top":600,"left":0},"buttons/verisign_wide.png":{"width":150,"height":50,"top":650,"left":0},"buttons/wordpress_wide.png":{"width":150,"height":50,"top":700,"left":0},"buttons/hyves_wide.png":{"width":150,"height":50,"top":750,"left":0},"buttons/netlog_wide.png":{"width":150,"height":50,"top":800,"left":0},"buttons/twitter_wide.png":{"width":150,"height":50,"top":850,"left":0}},"width":150,"height":900}
;
var logos = {"aol": { "width": 227, "height": 76, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/aol.png/785c903a5d6ed57f413e1d69dc7d1b94.png" }, "blogger": { "width": 266, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/blogger.png/ba8be6c83ebf97146536806bf4ced92a.png" }, "facebook": { "width": 266, "height": 100, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/facebook.png/9c1cc073085ff7a240a98858ce576e3e.png" }, "flickr": { "width": 279, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/flickr.png/b824b820fab8f93ef7065cf120284b13.png" }, "google": { "width": 193, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/google.png/d9bc408d9678fe05bc1d19e8e75f3f42.png" }, "hyves": { "width": 376, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/hyves.png/ce3010f6fa4c80e1a8beb1b8f75104db.png" }, "live_id": { "width": 374, "height": 43, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/live_id.png/bae87b9e4094d546266b038a6792cd98.png" }, "livejournal": { "width": 364, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/livejournal.png/bbd22c86f13e23e8d5b8a25322762969.png" }, "myopenid": { "width": 302, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/myopenid.png/4637ad661465ae72958c4805337ee4e1.png" }, "myspace": { "width": 300, "height": 95, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/myspace.png/4da5bd86612a845ed39107ddf4ee6c7d.png" }, "netlog": { "width": 350, "height": 68, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/netlog.png/8b2872b3b591f21dfc22fe2431247890.png" }, "openid": { "width": 288, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/openid.png/616aa68f7f3543c9cc1d0ea31c79907b.png" }, "twitter": { "width": 332, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/twitter.png/f86a5ba29d013e8e8f4b6ea3ff6fca8b.png" }, "verisign": { "width": 186, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/verisign.png/d1452dcfe8cff2a194d077f3d53faa05.png" }, "wordpress": { "width": 340, "height": 77, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/wordpress.png/f22563de52eb5b011f70651b963d32a7.png" }, "yahoo": { "width": 350, "height": 66, "src": "https://s3.amazonaws.com/static.rpxnow.com/images/yahoo.png/22812de70571b18d433d99d9f6fa9bd3.png" }};
var sections = ['page1', 'page2', 'return'].concat(provider_names);
var queryArgs = RPXNOW.Util.parseQueryString(window.self.location.href);
var force_reauth = true;

// Keeps the state of immediate-mode discovery. It will only work once.
var immediate_state = {
    reset: function() {
        this.provider_name = null;
        this.user_input = null;
        this.token = null;
    },

    setProvider: function(provider_name, user_input) {
        if (typeof(user_input) == 'undefined') {
            user_input = null;
        }
        this.reset();
        this.provider_name = provider_name;
        this.user_input = user_input;
    },

    ready: function(current_provider_name, current_user_input) {
        if (typeof(current_user_input) == 'undefined') {
            current_user_input = null;
        }
        return ((this.provider_name === current_provider_name) &&
                (this.user_input === current_user_input) &&
                this.token);
    },

    finish: function() {
        if (this.provider_name !== null) {
            setCookiedSection(this.provider_name);
        }
        finishWithToken(this.token);
    }
}

immediate_state.reset();

// stop facebook connect from destroying page with document.write
RPXNOW.Util.getHiddenDiv(window.self);

function useFBConnect() {
    var fb = config['provider_info']['facebook'];
    return fb && fb['use_connect'];
}

if (useFBConnect()) {
    if (window.ActiveXObject) {
        document.write('<' + 'script type="text/javascript" src="' + document.location.protocol + '//www.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"><\/script>');
    } else {
        var fbScriptElement = document.createElement('script');
        fbScriptElement.setAttribute("type","text/javascript");
        fbScriptElement.setAttribute("src", document.location.protocol + "//www.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php");
        (document.getElementsByTagName('HEAD')[0] || document.body).appendChild(fbScriptElement);
    }
}

function initSection(section_name) {
    if (!isInitialized(section_name)) {
        if (contains(config.enabled_providers, section_name) ||
            section_name == 'return') {
            initProvider(section_name);
            setInitialized(section_name);
        } else {
            initPage1Section(config.enabled_providers);
        }
    }
}

function initProvider(provider_name) {
    if (provider_name == 'return') {
        addReturnLogo();
    } else {
        addLogo(provider_name);
    }
}

initSection.initialized = [];

function isInitialized(section_name) {
    return contains(initSection.initialized, section_name);
}

function setInitialized(section_name) {
    return initSection.initialized.push(section_name);
}

// Add the provider buttons to the page1 div
function initPage1Section(providers) {
    if (isInitialized('page1')) {
        return;
    }

    addButtonStyle();

    var pages = [];
    var page;
    var row;
    for (var i = 0; i < providers.length && i < 12; i++) {
        if (i % 6 == 0) {
            page = [];
            pages.push(page);
        }
        if (i % 2 == 0) {
            row = [];
            page.push(row);
        }
        row.push(providers[i]);
    }

    function pageLink(page_num) {
        var a = document.createElement('a');
        a.onclick = function() {
            showSection('page' + page_num);
            return false;
        }
        a.href = "";
        a.className = "more-link";
        a.innerHTML = "More providers";
        return a;
    }

    for (var i = 0; i < pages.length; i++) {
        var section_name = "page" + (i + 1);
        var container_name = section_name + "-container";
        var container = document.getElementById(container_name);
        var rows = pages[i];
        for (var row_num = 0; row_num < rows.length; row_num++) {
            addProviderRow(container, rows[row_num]);
        }

        if (pages.length > 1) {
            var next_page = ((i + 1) % pages.length) + 1;
            container.appendChild(pageLink(next_page));
        }
        setInitialized(section_name);
    }
}

function addReturnLogo() {
    var slot = document.getElementById('logo-image-return');
    var image_name = 'buttons/' + config.last_successful + "_wide.png";
    var img = image(image_name);
    meta = sprites.sprites['buttons/button_wide.png'];
    slot.style.height = meta.height + 'px';
    slot.style.width = meta.width + 'px';
    slot.appendChild(img);
}

function addLogo(section) {
    var slot = document.getElementById('logo-image-' + section);
    if (slot) {
        var img = document.createElement('img');
        img.alt = section;
        img.src = logos[section]['src'];
        img.width = logos[section]['width'];
        img.height = logos[section]['height'];
        img.className = 'png';
        slot.appendChild(img);
    }
}

function addProviderRow(container, row_providers) {
    var row_div = document.createElement('div');
    row_div.className = 'row';

    for (var j in row_providers) {
        var provider = row_providers[j];
        var button = providerButton(provider);

        var cell_class = 'cell';
        if (j == 0) cell_class += ' first';
        if (j == row_providers.length - 1) cell_class += ' last';

        button.className = cell_class;
        row_div.appendChild(button);
    }
    var clear_div = document.createElement('div');
    clear_div.style.clear = 'left';
    row_div.appendChild(clear_div);
    container.appendChild(row_div);
}

function getGlobal(name) {
    return window[name];
}

function isDirectAuth(provider_name) {
    return !config.provider_info[provider_name]['input'];
}

function providerClick() {
    var provider_name = this.target_section;
    if (isDirectAuth(provider_name)) {
        authStart(provider_name);
    } else {
        showSection(provider_name);
    }
    return false;
}

// Create a div that contains a button for choosing a provider
function providerButton(section) {
    var anchor = document.createElement('a');
    anchor.className = "button wide";
    anchor.style.position = 'relative';

    var img = image('buttons/' + section + "_wide.png");
    img.alt = section;

    anchor.appendChild(img);
    anchor.target_section = section;
    anchor.onclick = providerClick;
    anchor.style.backgroundImage = "url('" + sprites.url + "')";
    anchor.style.cursor = "pointer";
    meta = sprites.sprites['buttons/button_wide.png'];
    anchor.style.height = meta.height + 'px';
    anchor.style.width = meta.width + 'px';

    var cell = document.createElement('div');
    cell.appendChild(anchor);

    return cell;
}

function image(name) {
    var img = document.createElement('img');
    img.className = "png";
    img.style.position = 'absolute';
    img.style.height = sprites.height + "px";
    img.style.width = sprites.width + "px";

    var sprite_meta = sprites.sprites[name];
    img.style.left = -sprite_meta.left + "px";
    img.style.top = -sprite_meta.top + "px";
    var clipTop = sprite_meta.top;
    var clipRight = sprite_meta.width + sprite_meta.left;
    var clipBottom = sprite_meta.top + sprite_meta.height;
    var clipLeft = sprite_meta.left;
    img.style.clip = "rect(" + clipTop + "px " + clipRight
        + "px " + clipBottom + "px " + clipLeft + "px)";

    img.src = sprites.url;
    return img;
}

function addButtonStyle() {
    var sheetNode = document.getElementById('inPageStyle');
    var sheet = sheetNode.sheet || sheetNode.styleSheet;

    if (sheet.insertRule) {
        function addRule(name, val) {
            sheet.insertRule(name + '{' + val + '}', (sheet.cssRules || []).length);
        }
    } else {
        var addRule = sheet.addRule;
    }

    var rules = {'':'', ':active':'_flip'};
    for (var pseudo_class in rules) {
        var selector = 'a.button.wide' + pseudo_class;
        var imgName = 'buttons/button_wide' + rules[pseudo_class] + '.png';
        var meta = sprites.sprites[imgName];
        var rule = 'background-position: -' + meta.left + 'px -'
            + meta.top + 'px';
        addRule(selector, rule);
    }
}

// Computes the coordinates of the new window, so as to center it over
// the parent frame
function getCenteredCoords(width, height) {
    var xPos = null;
    var yPos = null;
    if (window.ActiveXObject) {
        xPos = window.event.screenX - (width/2) + 100;
        yPos = window.event.screenY - (height/2) - 100;
    } else {
        var parentSize = [window.outerWidth, window.outerHeight];
        var parentPos = [window.screenX, window.screenY];
        xPos = parentPos[0] +
            Math.max(0, Math.floor((parentSize[0] - width) / 2));
        yPos = parentPos[1] +
            Math.max(0, Math.floor((parentSize[1] - (height*1.25)) / 2));
    }
   return [xPos, yPos];
}

// XXX: this is a state-management nightmare.
var window_auth_complete = false;
var auth_window = null;
var auth_window_provider = null;
function openAuthWindow(width, height) {
    window_auth_complete = false;
    var coordinates = getCenteredCoords(width, height);
    auth_window = window.open("", "rpx_auth_" + (new Date()).getTime(),
                              "width=" + width + ",height=" + height +
                              ",status=1,location=1,resizable=yes" +
                              ",left=" + coordinates[0] +",top=" +
                              coordinates[1]);
    var func = function () {
        if (!window_auth_complete) {
            if (auth_window.closed) {
                authWindowDestroy();
                hideAuthStatus();
            } else {
                setTimeout(func, 500);
            }
        }
    }
    setTimeout(func, 500);

    return auth_window;
}

function authWindowDestroy() {
    if (auth_window && !auth_window.closed) {
        auth_window.close();
    }
    auth_window = null;
    auth_window_provider = null;
    window_auth_complete = true;
}

function authWindowSuccess(token) {
    window_auth_complete = true;
    setTimeout(function() {
        finishWithToken(token);
    }, 1);
}

function authWindowInvalidConfiguration(invalid_configuration_url) {
    authWindowDestroy();
    w.top.location.href = invalid_configuration_url;
}

function authWindowError(message) {
    showError(message, 'generic');
}

function isSectionVisible(section) {
    var elem = document.getElementById(section);
    return (elem && elem.style.display != 'none');
}

function showError(message, section) {
    var error_box;

    if (message) {
        // Show the error in the non-return UX for the specified
        // section
        if (isSectionVisible(section)) {
            error_box = document.getElementById(section + '-error-box');
        } else if (isSectionVisible("return")) {
            error_box = document.getElementById('return-error-box');
        } else {
            error_box = document.getElementById('generic-error-box');
        }

        error_box.innerHTML = message;
        error_box.style.display = '';
    }
    hideAuthStatus();
}

var last_request = null;
function doPostRedirect(form_to_submit, callback, only_if_idle) {
    var post_data = YAHOO.util.Connect.setForm(form_to_submit.formElem);
    if ((last_request !== null) && YAHOO.util.Connect.isCallInProgress(last_request)) {
        if (only_if_idle) {
            return;
        } else {
            YAHOO.util.Connect.abort(last_request);
        }
    }
    last_request = YAHOO.util.Connect.asyncRequest('POST', form_to_submit.formElem.action, callback);
}

function showSection(toshow, reset) {
    reset = (typeof(reset) === 'undefined' || reset);

    initSection(toshow);

    if (useFBConnect()) {
        // If the section being shown isn't Facebook, clean up any
        // open session dialog
        FB.ensureInit(ensureClosedFacebookSessionDialog);
    }

    authWindowDestroy();

    // Hide all of the sections except the one we want to show
    for (var idx in sections) {
        var section = sections[idx];
        setDisplayById(section, (section == toshow) ? 'block' : 'none');
    }

    setDisplayById('different_provider', 'none');

    var virgin_states = ['page1', 'page2', 'return'];

    if (!contains(virgin_states, toshow)) {
        setDisplayById('different_provider', 'inline');
    }

    if (toshow == 'return') {
        setDisplayById('poweredby', 'none');
    } else {
        setDisplayById('poweredby', 'block');
    }

    if (reset) {
        hideErrorBoxes();
        hideAuthStatus();
    }

    // Set input focus
    try {
        var focus_element_id = null;
        if (toshow == 'return') {
            focus_element_id = 'return-button';
        } else if (config.welcome_message &&
                   toshow == config.last_successful &&
                   toshow == 'openid' &&
                   !reset) {
            focus_element_id = toshow + "-button";
        } else {
            focus_element_id = toshow + "_user_input";
        }
        var el = document.getElementById(focus_element_id);
        if (el) el.focus();
    } catch (e) {
        // Ignore error when trying to focus an invisible or
        // nonexistent element.
    }
}

function hideErrorBoxes() {
    var to_hide = ['generic'].concat(provider_names);
    for (var idx in to_hide) {
        setDisplayById(to_hide[idx] + '-error-box', 'none')
    }
}

function hideAuthStatus() {
    setDisplayById('authentication-status', 'none');
}

function showAuthStatus() {
    hideErrorBoxes();
    setDisplayById('authentication-status', 'inline');
}

function finishWithToken(token) {
    window.top.location.href = "https:\/\/tss-sign-in.rpxnow.com\/redirect?loc=" + token;
}

function ajaxOpenIDStart(openid_identifier, section, do_popup) {
    showAuthStatus();

    var callback;
    if (immediate_state.ready(section, openid_identifier)){
        immediate_state.finish();
    } else {
        var action = config.openid_start_url;
        var form = new RPXNOW.Util.HiddenForm(window.self, action, {
            "token_url": queryArgs["token_url"],
            "flags": queryArgs["flags"],
            "language_preference": queryArgs["language_preference"],
            "openid_proxy_url": queryArgs["openid_proxy_url"],
            "use_ajax": "true",
            "popup_mode": do_popup ? "true" : "false",
            "display": do_popup ? "popup" : "standard",
            "immediate": "false",
            "openid_identifier": openid_identifier,
            "force_reauth": (force_reauth || do_popup) ? "true" : "false"
        });

        var auth_window = null;
        if (do_popup) {
            auth_window_provider = section;
            var width = 450;
            var height = 500;

            if (section == 'yahoo') {
                width = 500;
            }
            auth_window = openAuthWindow(width,height);
        }

        var callback = new AjaxOpenIDCallback(section, auth_window);
        doPostRedirect(form, callback);
    }
}

function AjaxOpenIDCallback(section, auth_window) {
    this.complete = function(redirect_url) {
        setCookiedSection(section);
        var w = window;
        if (auth_window && !auth_window.closed) {
            w = auth_window;
        }
        w.top.location.href = redirect_url;
    }

    this.success = function(resp) {
        this.complete(resp.responseText);
    }

    this.failure = function(resp) {
        var message = null;
        switch (resp.status) {
        case 400:
            message = resp.responseText;
            break;
        case 405:
        case 503:
            message = "Server temporarily down for maintenance";
            break;
        case 0:
            message = "Temporary failure contacting server";
            break;
        case -1: // request was explicitly aborted
            break;
        default:
            message = resp.statusText;
        }
        showError(message, section);
        if (auth_window) {
            authWindowDestroy();
        }
    }
}

function twitterError(text) {
    hideAuthStatus();
    error_text =  text + " Try checking the \u003Ca target='_blank' href='http://status.twitter.com/'>Twitter status blog\u003c/a>.";
    showSection('twitter');
    showError(error_text, 'twitter');
}

var twitter_req = null;
function twitterAuthStart() {
    var start_url = config.provider_info.twitter.start_url + '&use_ajax=true';
    var generic_msg = "Unable to contact Twitter."
    var callback = {
        success: function(resp) {
            var data = eval(resp.responseText);
            switch (data.stat) {
            case 'ok':
                window.top.location.href = data.redirect_url;
                break;
            case 'err':
                twitterError(data.message);
                break;
            default:
                twitterError(generic_msg);
            }
        },
        failure: function(resp) {
            twitterError(generic_msg);
        }
    };

    showAuthStatus();
    if ((twitter_req !== null) &&
        YAHOO.util.Connect.isCallInProgress(twitter_req)) {
        YAHOO.util.Connect.abort(twitter_req);
    }
    twitter_req = YAHOO.util.Connect.asyncRequest('GET', start_url, callback);
}

if (useFBConnect()) {
    /******************************
     * Facebook connect
     ******************************/

    var facebook_init_started = false;
    var facebook_button_clicked = false;


    function facebookOverrides() {
        FBIntern.Flash.hasRequireVersion = function () {return false;}
        // patch window size
        FBIntern.Utility.get_windowSize = function () {
            var size = FB._create_Size((window && window.outerWidth) || (document && document.documentElement && document.documentElement.clientWidth) || (document && document.body && document.body.clientWidth) || 0, (window && window.outerHeight) || (document && document.documentElement && document.documentElement.clientHeight) || (document && document.body && document.body.clientHeight) || 0);
            return size;
        }
    }

    function facebookInit() {
        if (!facebook_init_started) {
            facebook_init_started = true;
            FB.init(config.provider_info.facebook.api_key, "../xd_receiver.htm");
            FB.ensureInit(facebookOverrides);
        }
    }

    function facebookAuthStart() {
        showAuthStatus();

        facebook_button_clicked = true;
        if (immediate_state.ready('facebook')) {
            immediate_state.finish();
        } else {
            facebookInit();
            var session = null;
            var is_initialized = false;
            FB.ensureInit(function () {
                // This value will have an effect only if this code runs
                // synchronously (which means that Facebook Connect is
                // already initialized)
                is_initialized = true;
                session = FB.Facebook.get_sessionWaitable().result;
            });
            if (is_initialized && !session && config.popup) {
                showFacebookAuthDialog();
            } else {
                facebookImmediate();
            }
        }
    }

    var fb_token_req = null;
    function facebookImmediate() {
        facebookInit();
        FB.ensureInit(function () {
            FB.Connect.get_status().waitUntilReady(function(status){
                if (status === FB.ConnectState.connected) {
                    FB.Facebook.get_sessionWaitable().waitUntilReady(function (session){
                        handleFacebookSession(session);
                    });
                } else if (facebook_button_clicked) {
                    window.top.location.href = config.provider_info.facebook.start_url;
                }
            });
        });
    }

    function showFacebookAuthDialog() {
        var sd;
        var is_ie6 = YAHOO.env.ua.ie > 5 && YAHOO.env.ua.ie < 7;
        if (is_ie6 && FB.SessionDialog._singleton) {
            sd = FB.SessionDialog._singleton;
            if (sd && sd._loginWindow && sd._loginWindow.closed) {
                sd._loginWindow = null;
            }
        }

        sd = FB.SessionDialog.getActive();
        if (sd) {
            sd.focus();
        } else {
            sd = FB.SessionDialog.make();
            sd.setUseBrowserPopup(true);

            // We wrap this in an extra function so that we can remove the
            // callback when the user cancels
            var session_handler = function (session) {
                handleFacebookSession(session);
            };

            var cancel_handler = function() {
                facebook_button_clicked = false;
                FB.Facebook.get_sessionWaitable().remove_changed(session_handler);
                hideAuthStatus();
            };

            sd.addCancelHandler(cancel_handler);
            sd.request();

            var popupClosedWatchdog = function() {
                if (sd._loginWindow && sd._loginWindow.closed) {
                    cancel_handler();
                } else {
                    setTimeout(popupClosedWatchdog, 500);
                }
            };
            popupClosedWatchdog();

            FB.Facebook.get_sessionWaitable().waitUntilReady(session_handler);
        }
    }

    // If a session dialog is currently open, close it because it isn't
    // needed.
    function ensureClosedFacebookSessionDialog() {
        var sd = FB.SessionDialog._singleton;
        if (sd && sd._loginWindow && !sd._loginWindow.closed) {
            sd.destroy();
        }
    }

    function handleFacebookSession(session) {
        // If there is already a call in progress, we do not have to
        // initiate another
        if ((fb_token_req !== null) &&
            YAHOO.util.Connect.isCallInProgress(fb_token_req)) {
            return;
        }

        var finish_with_session = "https:\/\/tss-sign-in.rpxnow.com\/facebook\/finish_with_session?token_url=https%3A%2F%2Frpxnow.com%2Frelying_parties%2Ftss-sign-in%2Ftest";
        finish_with_session += '&uid=' + encodeURIComponent(session.uid);
        finish_with_session += '&session_key=' + encodeURIComponent(session.session_key);
        finish_with_session += '&expires=' + encodeURIComponent(session.expires);
        finish_with_session += '&secret=' + encodeURIComponent(session.secret);
        finish_with_session += '&sig=' + encodeURIComponent(session.sig);

        var handle_response_with_click = function(data) {
            hideAuthStatus();

            var err_msg = "Facebook authentication error";
            switch (data['stat']) {
            case 'ok':
                var loc = data['loc'];
                ensureClosedFacebookSessionDialog();
                finishWithToken(loc);
                break;
            case 'expired':
                facebookSessionExpired();
                break;
            case 'err':
                err_msg += " (" + data["error"] + ")";
            default:
                showError(err_msg, "generic");
            }
        };

        var handle_response_immediate = function(data) {
            if (data['stat'] == 'ok') {
                immediate_state.setProvider('facebook', null);
                immediate_state.token = data['token'];
            }
        };

        var callback = {
            success: function (resp) {
                var data = eval(resp.responseText);
                if (facebook_button_clicked) {
                    handle_response_with_click(data);
                } else {
                    handle_response_immediate(data);
                }
            },
            failure: function(resp) {
                if (facebook_button_clicked) {
                    showError("Facebook authentication error", "generic");
                }
            }
        };

        fb_token_req = YAHOO.util.Connect.asyncRequest('GET',
                                                       finish_with_session,
                                                       callback);
    }

    function facebookSessionExpired() {
        immediate_state.reset();

        // XXX: restart auth if we get session expired after the user clicks?
        if (facebook_button_clicked) {
            facebookAuthStart();
        }
    }
} // end if (useFBConnect())

/********************
 * Immediate mode support
 ********************/

function immediate(section, user_input) {
    var provider = config.provider_info[section];
    switch (provider.type) {
    case 'op':
        immediateOpenIDStart(provider.endpoint, section);
        return;
    case 'openid1':
        if (user_input) {
            var pattern = provider['input']['pattern'];
            var openid_identifier = makeIdentifier(pattern, user_input);
            immediateOpenIDStart(openid_identifier, section);
        }
        return;
    case 'custom':
        switch (section) {
        case 'facebook':
            if (useFBConnect()) {
                facebookImmediate();
            }
            return;
        }
        return;
    }
}

function immediateOpenIDStart(user_input, section) {
    immediate_state.setProvider(section, user_input);

    var action = config.openid_start_url;
    var form = new RPXNOW.Util.HiddenForm(window.self, action, {
        "token_url": queryArgs["token_url"],
        "flags": queryArgs["flags"],
        "language_preference": queryArgs["language_preference"],
        "openid_proxy_url": queryArgs["openid_proxy_url"],
        "use_ajax": "true",
        "immediate": "true",
        "openid_identifier": immediate_state.user_input,
        "tab": immediate_state.provider_name
    });
    var callback = {
        success: function(resp) {
            // create a hidden iframe using response text as the src url
            var x = new RPXNOW.Util.HiddenIframe(window.self,
                                                 resp.responseText);
        },
        failure: function() {
        }
    };
    doPostRedirect(form, callback, true);
}

function immediateSuccess(token) {
    immediate_state.token = token;
}

function authStart(provider_name) {
    var provider = config.provider_info[provider_name];
    var do_popup = provider['supports_popup'] && config['popup'];

    // Focus the popup if it gets requested again when the button is clicked
    // XXX: This does not work in the case that the popup is used when
    // a particular username is entered (that is, when the contents of
    // the auth window are a function of the user input)
    if (do_popup &&
        auth_window &&
        !auth_window.closed &&
        provider_name == auth_window_provider) {
        auth_window.focus();
        return;
    } else {
        // Ensure that the popup is not up when we start auth
        authWindowDestroy();
    }

    setCookiedSection(provider_name);
    var initiate = getGlobal(provider_name + 'AuthStart');
    if (typeof(initiate) !== 'undefined') {
        if (provider_name != 'facebook' || useFBConnect()) {
            initiate();
            return;
        }
    }

    switch (provider.type) {
    case 'op':
        ajaxOpenIDStart(provider.endpoint, provider_name, do_popup);
        return;
    case 'custom':
        setDisplayById('authentication-status', 'inline');
        window.top.location.href = provider.start_url;
        return;
    case 'openid1':
        var input_box = document.getElementById(provider_name + '_user_input');
        var pattern = provider['input']['pattern'];
        // XXX: need to do escaping
        var openid_identifier = makeIdentifier(pattern, input_box.value);
        ajaxOpenIDStart(openid_identifier, provider_name, do_popup);
    default:
        // XXX: should never get here
    }
}

function makeIdentifier(pattern, input) {
    var prefix = pattern[0];
    var suffix = pattern[1];

    input = input.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

    if (prefix == 'http://') {
        input = input.replace(/_/g, '-');
        input = input.replace(/[^-a-zA-Z0-9\.]/g, '');
        return prefix + input + suffix;
    }

    if (suffix == '' && prefix != '') {
        return prefix + escape(input);
    }

    return pattern.join(input);
}

function setDisplayById(id, display) {
    var elem = document.getElementById(id);
    if (elem) elem.style.display = display;
}

// Is the supplied section name in the list of defined sections?
function isDefinedSection(maybe_section) {
    return contains(sections, maybe_section);
}

function contains(ary, elem) {
    for (var i = 0; i < ary.length; i++) {
        if (ary[i] === elem) {
            return true;
        }
    }
    return false;
}

function setCookie(name, val) {
    var now = new Date();
    var expiration = new Date(now.getFullYear() + 5, now.getMonth(),
                              now.getDay());
    var settings = {expires: expiration, path:'/'};
    YAHOO.util.Cookie.set(name, val, settings);
}

function setCookiedSection(section) {
    setCookie('login_tab', section);
    var inp_val = '';

    var inp = document.getElementById(section + '_user_input');
    if (inp) {
        var inp_v = inp.value;
        if (inp_v) {
            inp_val = inp_v;
        }
    }
    setCookie('user_input', inp_val);
}
// Show the initial UI and any error message
function doLoad() {
    var section = YAHOO.util.Cookie.get('login_tab');
    var inp_val = null;

    var back_links = ['different_provider', 'this_is_not_me'];
    var go_to_page1 = function() {
        showSection('page1');
        force_reauth = true;
        immediate_state.reset();
        return false;
    }
    for (var i = 0; i < back_links.length ; i++) {
        var l = document.getElementById(back_links[i]);
        if (l) { l.onclick = go_to_page1; }
    }

    // If the caller is testing, make the initial experience the
    // page1 experience
    var flags = queryArgs["flags"];
    if (flags && flags.match(/\bshow_provider_list\b/)) {
        section = 'page1';

    } else if (isDefinedSection(section)) {
        inp_val = YAHOO.util.Cookie.get('user_input');
        if (inp_val) {
            // This block handles the change to requiring full domains
            // for blogger
            if (section == 'blogger' && inp_val.indexOf('.') == -1) {
                inp_val += '.blogspot.com';
            }

            force_reauth = false;

            var inp = document.getElementById(section + '_user_input');
            if (inp) {
                inp.value = inp_val;
            }
        }

        immediate(section, inp_val);

        // Show the appropriate section
        if (config.welcome_message) {
            if (section != 'openid') {
                section = 'return';
            }
            force_reauth = false;
        }

    } else {
        // The section is not OK. Try to fall back to the supplied
        // default provider, and finally to the page1 user experience.
        default_section = getQueryParam('default_provider');
        if (isDefinedSection(default_section)) {
            section = default_section;
            immediate(section);
        } else {
            section = 'page1';
        }
    }

    // Show any error message. If there is no error box defined for
    // the selected section, this will use the generic error box
    if (config.initial_error_message) {
        showError(config.initial_error_message, section);
    }

    if (useFBConnect()) {
        facebookInit();
    }

    showSection(section, false);
}

function addListener(elem, evname, func) {
    if (window.ActiveXObject) {
        elem.attachEvent('on' + evname, func);
    } else {
        elem.addEventListener(evname, func, false);
    }
}

if (useFBConnect() && !window.ActiveXObject) {
    addListener(fbScriptElement, 'load', doLoad);
} else {
    addListener(window, 'load', doLoad);
}
</script></div>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/TSS-Sign-in-Authentication/blog.htm ]]></link><pubDate>Tue, 1 Dec 2009 07:46:27 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/TSS-Sign-in-Authentication/blog.htm ]]></guid></item><item><title><![CDATA[TSS Website Changes]]></title><description><![CDATA[<p>
	<span style="background-color: rgb(255, 0, 0);"><u><strong>Gaming Groups<br />
	</strong></u></span></p>
<p>
	I have put up our two quick primary groups. BF2 and CODMW2. If you click on the Gaming groups please add yourself to your respective gaming group. You can add yourself to any game you actually play.</p>
<p>
	<span style="background-color: rgb(255, 0, 0);"><u><strong>TSS Wiki<br />
	</strong></u></span></p>
<p>
	The TSS Wiki is there but no information is on the WIki. This is where we will add all pertinent information of any kind. VENT info. Teamspeak Info. Config file changes. How to posts.</p>
<p>
	<span style="color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 0, 0);"><u><strong><br />
	New Member Page<br />
	</strong></u></span></span></p>
<p>
	Self explanatory. It just extends the asthetics of the global member group and search.</p>
<p>
	<span style="background-color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><u><strong>TSS Members Blogs<br />
	</strong></u></span></span></p>
<p>
	The blog system has been reworked and is still getting tweaked. This time videos no longer pushes the page formatting out of whack. It will also feature a MOST VIEWED preview so popular blogs will be shown also.</p>
<p>
	<br />
	- Payless</p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/TSS-Gaming-Groups/blog.htm ]]></link><pubDate>Tue, 1 Dec 2009 01:59:28 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/TSS-Gaming-Groups/blog.htm ]]></guid></item><item><title><![CDATA[New TSS Layout]]></title><description><![CDATA[<p>
	TSS Community,</p>
<p>
	<br />
	I am slowly undergoing a site redesign. Everything is, or has changed. From the way the Member list is displayed to the color scheme of the site. All the old content is gone and we are starting new. Please feel free to post to get things going. Any questions just hit me up on a email on the site. I will be adding new services and content as the days come along. Thanks for your patience.</p>
<p>
	&nbsp;</p>
<p>
	- Payless </p>
]]></description><link><![CDATA[ http://toxicsyndrome.com/pt/New-TSS-Layout/blog.htm ]]></link><pubDate>Tue, 1 Dec 2009 00:01:20 GMT</pubDate><guid isPermaLink="true"><![CDATA[ http://toxicsyndrome.com/pt/New-TSS-Layout/blog.htm ]]></guid></item></channel></rss>