var marketUpdateStatus, cnnUpdateStatus, mercUpdateStatus, sfgateUpdateStatus, googleusUpdateStatus,
googlesciUpdateStatus, nprUpdateStatus, maxpcUpdateStatus, diggUpdateStatus, slashdotUpdateStatus,
newsdotcomUpdateStatus, wiredUpdateStatus, ktvuUpdateStatus;

marketUpdateStatus = cnnUpdateStatus = mercUpdateStatus = sfgateUpdateStatus = googleusUpdateStatus =
googlesciUpdateStatus = nprUpdateStatus = maxpcUpdateStatus = diggUpdateStatus = slashdotUpdateStatus =
newsdotcomUpdateStatus = wiredUpdateStatus = ktvuUpdateStatus = false;

function toggleUpdateStatus(state)
{
	var update = $('updateNotification');
	if( (state == "off") && (!marketUpdateStatus) && (!cnnUpdateStatus) && (!mercUpdateStatus) && (!sfgateUpdateStatus) && (!googleusUpdateStatus) && (!googlesciUpdateStatus) && (!nprUpdateStatus) && (!maxpcUpdateStatus) && (!diggUpdateStatus) && (!slashdotUpdateStatus) && (!newsdotcomUpdateStatus) && (!wiredUpdateStatus) && (!ktvuUpdateStatus)  )
	{
		update.style.display='none';
		if(getQueryVariable('debug')){
			setTall_debug('nprContent','pcWorldContent');
			setTall_debug('diggContent','slashDotContent');
			setTall_debug('wiredContent','newsDotComContent');
			setTall_debug('mercHeads', 'sfGateHeads');
			setTall_debug('contentContent','sideBarContent');
		}
		else{
/*			pause(250);*/
			setTall('nprContent','pcWorldContent');
			setTall('diggContent','slashDotContent');
			setTall('wiredContent','newsDotComContent');
			setTall('mercHeads', 'sfGateHeads');
			setTall('contentContent','sideBarContent');
		}
	}
	else if( state == "on" )
		update.style.display='inline';


}

window.addEvent('domready', function(){
	var marketUrl = '/scripts/market_ajax.cfm';
	var cnnUrl = '/scripts/cnn_ajax.cfm';
	var mercUrl = '/scripts/mercurynews_ajax.cfm';
	var sfgateUrl = '/scripts/sfgate_ajax.cfm';
	var googleusUrl = '/scripts/googleus_ajax.cfm';
	var googlesciUrl = '/scripts/googlesci_ajax.cfm';
	var nprUrl = '/scripts/npr_ajax.cfm';
	var maxpcUrl = '/scripts/maxpc_ajax.cfm';
	var diggUrl = '/scripts/digg_ajax.cfm';
	var slashdotUrl = '/scripts/slashdot_ajax.cfm';
	var newsdotcomUrl = '/scripts/newsdotcom_ajax.cfm';
	var wiredUrl = '/scripts/wired_ajax.cfm';
	var ktvuUrl = '/scripts/ktvu_ajax.cfm';

	var marketTimer = 10;
	var rssTimer, mercTimer, sfgateTimer, googleusTimer, googlesciTimer;
	rssTimer = mercTimer = sfgateTimer = googleusTimer = googlesciTimer = 60;

	var marketPeriodical, marketDummy,
		cnnPeriodical, cnnDummy,
		mercPeriodical, mercDummy,
		sfgatePeriodical, sfgateDummy,
		googleusPeriodical, googleusDummy,
		googlesciPeriodical, googlesciDummy,
		nprPeriodical, nprDummy,
		maxpcPeriodical, maxpcDummy,
		diggPeriodical, diggDummy,
		slashdotPeriodical, slashdotDummy,
		newsdotcomPeriodical, newsdotcomDummy,
		wiredPeriodical, wiredDummy,
		ktvuPeriodical, ktvuDummy;

	var market = $('marketData');
	var cnn = $('cnnContent');
	var merc = $('mercData');
	var sfgate = $('sfgateData');
	var googleus = $('googUSContent');
	var googlesci = $('googSciContent');
	var npr = $('nprContent');
	var maxpc = $('pcWorldContent');
	var digg = $('diggContent');
	var slashdot = $('slashDotContent');
	var newsdotcom = $('newsDotComContent');
	var wired = $('wiredContent');
	var ktvu = $('ktvuContent');

	var marketAjax = new Ajax(marketUrl, {
		update: market,
		method: 'get',
		onComplete: function() {
			market.style.backgroundColor='#fff';
			marketUpdateStatus = false;
			toggleUpdateStatus("off");
		}
	});

	var mercAjax = new Ajax(mercUrl, {
			update: merc,
			method: 'get',
			onComplete: function() {
				$('mercLeft').style.backgroundColor='#fff';
				$('mercRight').style.backgroundColor='#fff';
				mercUpdateStatus = false;
				toggleUpdateStatus("off");
			}
	});

	var sfgateAjax = new Ajax(sfgateUrl, {
				update: sfgate,
				method: 'get',
				onComplete: function() {
					$('sfgateData').style.backgroundColor='#fff';
					sfgateUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var cnnAjax = new Ajax(cnnUrl, {
				update: cnn,
				method: 'get',
				onComplete: function() {
					cnn.style.backgroundColor='#fafafa';
					cnnUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var googleusAjax = new Ajax(googleusUrl, {
				update: googleus,
				method: 'get',
				onComplete: function() {
					googleus.style.backgroundColor='#fafafa';
					googleusUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var googlesciAjax = new Ajax(googlesciUrl, {
				update: googlesci,
				method: 'get',
				onComplete: function() {
					googlesci.style.backgroundColor='#fafafa';
					googlesciUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var nprAjax = new Ajax(nprUrl, {
				update: npr,
				method: 'get',
				onComplete: function() {
					npr.style.backgroundColor='#fff';
					nprUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var maxpcAjax = new Ajax(maxpcUrl, {
				update: maxpc,
				method: 'get',
				onComplete: function() {
					maxpc.style.backgroundColor='#fff';
					maxpcUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var diggAjax = new Ajax(diggUrl, {
				update: digg,
				method: 'get',
				onComplete: function() {
					digg.style.backgroundColor='#fff';
					diggUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var slashdotAjax = new Ajax(slashdotUrl, {
				update: slashdot,
				method: 'get',
				onComplete: function() {
					slashdot.style.backgroundColor='#fff';
					slashdotUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var newsdotcomAjax = new Ajax(newsdotcomUrl, {
				update: newsdotcom,
				method: 'get',
				onComplete: function() {
					newsdotcom.style.backgroundColor='#fff';
					newsdotcomUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var wiredAjax = new Ajax(wiredUrl, {
				update: wired,
				method: 'get',
				onComplete: function() {
					wired.style.backgroundColor='#fff';
					wiredUpdateStatus = false;
					toggleUpdateStatus("off");
				}
	});

	var ktvuAjax = new Ajax(ktvuUrl, {
					update: ktvu,
					method: 'get',
					onComplete: function() {
						ktvu.style.backgroundColor='#fafafa';
						ktvuUpdateStatus = false;
						toggleUpdateStatus("off");
					}
	});

	/* MARKET DATA */
	var marketRefresh = (function() {
		var currentDate = new Date();
		var day = currentDate.getDay();
		var hour = currentDate.getUTCHours();
		if( ( (day < 6) && (day > 0) ) && ( (hour > 13) && (hour < 20) ) ){
			// dummy to prevent caching of cfm
			marketDummy = $time() + $random(0, 100);
			// add highlighted background to show content being updated
			market.style.backgroundColor='#ffa';
			marketUpdateStatus = true;
			toggleUpdateStatus("on");
			// requests of our cfm plus marketDummy as query
			marketAjax.request(marketDummy);
		}
	});

	/* CNN DATA */
	var cnnRefresh = (function() {
		cnnDummy = $time() + $random(0, 100);
		cnn.style.backgroundColor='#ffa';
		cnnUpdateStatus = true;
		toggleUpdateStatus("on");
		cnnAjax.request(cnnDummy);
	});

	/* MERCURY NEWS DATA */
	var mercRefresh = (function() {
		mercDummy = $time() + $random(0, 100);
		$('mercLeft').style.backgroundColor='#ffa';
		$('mercRight').style.backgroundColor='#ffa';
		mercUpdateStatus = true;
		toggleUpdateStatus("on");
		mercAjax.request(mercDummy);
	});

	/* SF GATE DATA */
	var sfgateRefresh = (function() {
		sfgateDummy = $time() + $random(0, 100);
		$('sfgateData').style.backgroundColor='#ffa';
		sfgateUpdateStatus = true;
		toggleUpdateStatus("on");
		sfgateAjax.request(sfgateDummy);
	});

	/* GOOGLE US DATA */
	var googleusRefresh = (function() {
		googleusDummy = $time() + $random(0, 100);
		googleus.style.backgroundColor='#ffa';
		googleusUpdateStatus = true;
		toggleUpdateStatus("on");
		googleusAjax.request(googleusDummy);
	});

	/* GOOGLE SCI DATA */
	var googlesciRefresh = (function() {
		googlesciDummy = $time() + $random(0, 100);
		googlesci.style.backgroundColor='#ffa';
		googlesciUpdateStatus = true;
		toggleUpdateStatus("on");
		googlesciAjax.request(googlesciDummy);
	});

	/* NPR DATA */
	var nprRefresh = (function() {
		nprDummy = $time() + $random(0, 100);
		npr.style.backgroundColor='#ffa';
		nprUpdateStatus = true;
		toggleUpdateStatus("on");
		nprAjax.request(nprDummy);
	});

	/* MAX PC DATA */
	var maxpcRefresh = (function() {
		maxpcDummy = $time() + $random(0, 100);
		maxpc.style.backgroundColor='#ffa';
		maxpcUpdateStatus = true;
		toggleUpdateStatus("on");
		maxpcAjax.request(maxpcDummy);
	});

	/* DIGG DATA*/
	var diggRefresh = (function() {
		diggDummy = $time() + $random(0, 100);
		digg.style.backgroundColor='#ffa';
		diggUpdateStatus = true;
		toggleUpdateStatus("on");
		diggAjax.request(diggDummy);
	});

	/* SLASHDOT DATA */
	var slashdotRefresh = (function() {
		slashdotDummy = $time() + $random(0, 100);
		slashdot.style.backgroundColor='#ffa';
		slashdotUpdateStatus = true;
		toggleUpdateStatus("on");
		slashdotAjax.request(slashdotDummy);
	});

	/* NEWSDOTCOM DATA */
	var newsdotcomRefresh = (function() {
		newsdotcomDummy = $time() + $random(0, 100);
		newsdotcom.style.backgroundColor='#ffa';
		newsdotcomUpdateStatus = true;
		toggleUpdateStatus("on");
		newsdotcomAjax.request(newsdotcomDummy);
	});

	/* WIRED DATA */
	var wiredRefresh = (function() {
		wiredDummy = $time() + $random(0, 100);
		wired.style.backgroundColor='#ffa';
		wiredUpdateStatus = true;
		toggleUpdateStatus("on");
		wiredAjax.request(wiredDummy);
	});

	/* KTVU DATA */
	var ktvuRefresh = (function() {
			ktvuDummy = $time() + $random(0, 100);
			ktvu.style.backgroundColor='#ffa';
			ktvuUpdateStatus = true;
			toggleUpdateStatus("on");
			ktvuAjax.request(ktvuDummy);
	});

	// the periodical starts here, the * 1000 is because milliseconds required
	marketPeriodical = marketRefresh.periodical(marketTimer * 1000, this);
 	cnnPeriodical = cnnRefresh.periodical(rssTimer * 1000, this);
 	mercPeriodical = mercRefresh.periodical(mercTimer * 1000, this);
 	sfgatePeriodical = sfgateRefresh.periodical(sfgateTimer * 1000, this);
 	googleusPeriodical = googleusRefresh.periodical(googleusTimer * 1000, this);
 	googlesciPeriodical = googlesciRefresh.periodical(googlesciTimer * 1000, this);
 	nprPeriodical = nprRefresh.periodical(rssTimer * 1000, this);
 	maxpcPeriodical = maxpcRefresh.periodical(rssTimer * 1000, this);
 	diggPeriodical = diggRefresh.periodical(rssTimer * 1000, this);
 	slashdotPeriodical = slashdotRefresh.periodical(rssTimer * 1000, this);
 	newsdotcomPeriodical = newsdotcomRefresh.periodical(rssTimer * 1000, this);
 	wiredPeriodical = wiredRefresh.periodical(rssTimer * 1000, this);
 	ktvuPeriodical = ktvuRefresh.periodical(rssTimer * 1000, this);

	/* this is the first request, later on will be the periodical and refresh.
	If we dont do this way, we have to wait for Timer amount of seconds before the first request. */
	//marketAjax.request($time());
	//nprAjax.request($time());
	//maxpcAjax.request($time());
	//diggAjax.request($time());
	//slashdotAjax.request($time());
	//newsdotcomAjax.request($time());
	//wiredAjax.request($time());
	//ktvuAjax.request($time());
	//mercAjax.request($time());
	//sfgateAjax.request($time());
	//cnnAjax.request($time());
	//googleusAjax.request($time());
	//googlesciAjax.request($time());
});
