var gameDate;

window.addEvent('resize',function(e) {
	
		if($('predictCont')) {
			
			var calContCoords = $('calendarContainer').getCoordinates();
			
			$('predictCont').set({'styles':{'left':calContCoords.left+6,'top':calContCoords.top+7}});
			
		}
	
});

function initPredictFlow(gameID,view) {

	if($('predictCont')) {
		
		$('predictCont').destroy();
		
	}
	
	gameDate=gameID;
	
	/* get calendar container's current position */
	
	var calContCoords = $('calendarContainer').getCoordinates();
	
	var predictCont = new Element('div',{'id':'predictCont','styles':{'left':calContCoords.left+6,'top':calContCoords.top+7}});
	predictCont.injectInside($(document.body));
	
	var closeDiv = new Element('div',{'id':'closeDiv'});
	closeDiv.injectInside(predictCont);
	
	var closeImg = new Element('img',{'src':'images/closeFlow.gif'});
	
	var closeAnchor = new Element('a',{'href':'#'}).set('html','close&nbsp;');
	closeAnchor.injectInside(closeDiv);
	closeImg.injectInside(closeAnchor);
	closeAnchor.addEvent('click',closeFlow);
		
	function closeFlow(e) {
		//event = new Event(e);
		//event.preventDefault();
		predictCont.destroy();
		
		return false;
	};
	
	var viewCont = new Element('div',{'id':'viewCont'});
	viewCont.injectInside(predictCont);
	
	loadView(view);
	return false;
}

function loadView(view) {
	
	//hideAllTips();
	
	//inject the returned view
	var requestView = new Request({url:'views.php',method:'post',onRequest:function(){
		// throbber code
		$('viewCont').set('html','<img id="loadingAnim" src="images/loading.gif" alt="loading">');
	}}).send('view='+view+'&date='+gameDate+'&timestamp='+timeStamp());
	
	requestView.addEvent('success',function(responseText,responseXML) {
			$('viewCont').set('html',responseText);
			showError(error);
			error=null;
			if (view=='predictionSubmit') new Request({url:'predictions.php', method: 'post', onSuccess: predictSubmit}).send($('predictForm'));
			if (view!='login' && $('submitB'))
				$('submitB').addEvent('click',
									 function() {new Request({url:'predictions.php', method: 'post', onSuccess: predictSubmit}).send($('predictForm'));
										 return false});
		});
	
}

function predictSubmit(r) {

	if (r=='login') return loadView('login');
	if (r=='success') return loadView('thanks');
	switch (r) {
		case 'too late':
			error='Rivalry predictions must be entered no later than an hour before gametime'; break;
		case 'too early':
			error='Rivalry predictions cannot be entered earlier than 2 weeks before gametime'; break;
		case 'tie':
			error='You may not submit a tie score'; break;
		default:
			error='Rivalry predictions cannot be entered for this game'; break;
	}
	showError(error);
}

function showError(e) {
	if ($('error') && e) {
		$('error').set('html',e);
		if ($('prediction')) $('prediction').set('styles',{'display':'block'});
	}
	error='';
}

function predictPage(page,count) {
	for (i=1;i<=count;i++) {
		if ($('pickHistPage'+count)) $('pickHistPage'+i).set('styles',{'display':(page==i?'block':'none')});
	}
}

function timeStamp() {
	
	var dateObj = new Date();
	
	year = dateObj.getFullYear().toString();
	month = padStr(dateObj.getMonth() + 1,2,'0');
	date = padStr(dateObj.getDate().toString(),2,'0');
	hours = padStr(dateObj.getHours().toString(),2,'0');
	minutes = padStr(dateObj.getMinutes().toString(),2,'0');
	seconds = padStr(dateObj.getSeconds().toString(),2,'0');
	
	return year + month + date + hours + minutes + seconds;
}

function padStr(num, padLen, charToPad) {
	
	var str = '';
	
	num = new String(num);
	
	for(var i = num.length; i < padLen; i++) {
		
		str += charToPad;
		
	}
	
	return str + num;
	
}