

window.addEvent('domready', function() {
	getShowStatus(); //Show initial state
}); //window.addEvent domready

function getShowStatus() {
	debug('getShowStatus()');
	var date = new Date();
	//debug('getTime()='+date.getTime());
	var req = new Request({
		url: 'show-status-check.asp?nocache='+date.getTime(),
		method: 'get',
		onRequest: function() {
			//Nothing
			//debug('onRequest()');
		},//onRequest
		onSuccess: function(response) {
			//debug('onSuccess('+response+')');
			if (response.indexOf('"status":') >= 0) {
			//Response looks valid
				//debug('Response looks valid');
				//var json = eval('(' + response + ')');
				var json = JSON.decode(response);
				debug('json.status='+json.status);
				displayShowState(IsNullOrEmpty(json.status,-1));
			} else {
			//Response looks invalid
				//debug('Response looks invalid');
				displayShowState(-2);
			}
		},//onSuccess
		onFailure: function(xhr) {
			//debug('onFailure()');
			displayShowState(-3);
		}//onFailure
	});
	req.send();
} //getshowStatus()


function displayShowState(iState) {
	debug('displayShowState('+iState+')');
	if (iState < 0 && iState != -666) {
		ApplyStyleAndDelay('show-status-error.asp', 10000)	//10000 = 10 secs
	} else if (iState == 1) {
		ApplyStyleAndDelay('show-status-pre.asp', 60000)	//60000 = 1 mins
	} else if (iState == 2) {
		ApplyStyleAndDelay('show-status-live.asp', 30000)	//30000 = 30 secs
	} else if (iState == 3) {
		ApplyStyleAndDelay('show-status-post.asp', 300000)	//300000 = 5 mins
	} else {
		ApplyStyleAndDelay('show-status-no.asp', 900000)	//900000 = 15 mins
	}
} //displayshowState()

var sFileNameOld;
function ApplyStyleAndDelay(sFileName, iDelay) {
	debug('displayShowState('+sFileName+','+iDelay+')');
	if (sFileNameOld != sFileName) {
		sFileNameOld = sFileName; //Record state		
		getStatusContent(sFileName);
	}
	(function() { getShowStatus(); }).delay(iDelay);
} //ApplyStyleAndDelay()

function getStatusContent(sFileName) {
	debug('getStatusContent('+sFileName+')');
	var date = new Date();
	//debug('getTime()='+date.getTime());
	var req = new Request({
		url: sFileName+'?nocache='+date.getTime(),
		method: 'get',
		onRequest: function() {
			//Nothing
			//debug('onRequest()');
		},//onRequest
		onSuccess: function(response) {
			//debug('onSuccess('+response+')');
			$('ShowState').set('html',response);
		},//onSuccess
		onFailure: function(xhr) {
			//debug('onFailure()');
			$('ShowState').set('html','<div class="UserAlertMessage"><h2>Content Error</h2><p>Please check back later.</p></div>');
		}//onFailure
	});
	req.send();
} //getStatusContent()

function IsNullOrEmpty(sValue, sReplaceValue) {
//Checks to see if given value has data.
	//debug('IsNullOrEmpty('+sValue+')');
	if (sValue === null || sValue === '') {
		return sReplaceValue;
	} else {
		return sValue;
	}
} //IsNullOrEmpty()

function debug(sMessage) {
	if ($('DEBUG') != null) {
		var currentDate = new Date();
		var min = currentDate.getMinutes();
		var sec;
		if (currentDate.getSeconds() < 10) {
			sec = '0' + currentDate.getSeconds();
		} else {
			sec = currentDate.getSeconds();
		}
		var timestamp = min + ':' + sec;
		sMessage = timestamp + ' : ' + sMessage;
		sMessage = sMessage + '<br>' + $('DEBUG').get('html');
		$('DEBUG').set('html', sMessage);
	}
} //debug()
