// notices ajax setup
var ajaxObjectsNOT = new Array();
var noticeActions = new Array();
var noticeIDs = new Array();
var noticeCheckBoxes = new Array();
var ajaxIndexNOT = 0;
var callTimerNOT = null;

function pollnotice(showall) {
	if(showall === undefined)
		showall = false;
		
	if(showall)
		scroll(0,0);
	
	if(callTimerNOT)
		clearTimeout(callTimerNOT);
	
	//alert("In pollnotice");

	if(ajaxIndexNOT++ > 99)
		ajaxIndexNOT = 0;
	var index = ajaxIndexNOT;
		
	ajaxObjectsNOT[index] = new sack();
	ajaxObjectsNOT[index].method = 'POST';

	ajaxObjectsNOT[index].requestFile = "/chessclub/notices.php";
	//ajaxObjectsNOT[index].setVar('id',1);
	if(showall)
		ajaxObjectsNOT[index].setVar('get_all',1);
	ajaxObjectsNOT[index].onCompletion = function(){ processNoticeReturn(index); }
	ajaxObjectsNOT[index].onError = function(){ ajaxErrorNOT(); }
	ajaxObjectsNOT[index].runAJAX();

}

function processNoticeReturn(index) {
	var result = ajaxObjectsNOT[index].response;
	
	//if(result != '')
		document.getElementById('notices_div').innerHTML = result;
	
	callTimerNOT = setTimeout('pollnotice()',300000);
}

function ajaxErrorNOT() {
	//alert("Ajax Error in notices polling.");
}

function markNoticeClick(myCheckbox, noticeid) {
	// alert("doing mark/unmark");
	if(myCheckbox.checked) {
		doNoticeAction("mark", noticeid, myCheckbox);
	} else {
		doNoticeAction("unmark", noticeid, myCheckbox);
	}
}

function doNoticeAction(action, noticeid, myCheckbox) {
	//alert("Action: navigate  noticeid: " + noticeid + "  url: " + url);
	
	if(ajaxIndexNOT++ > 99)
		ajaxIndexNOT = 0;
	var index = ajaxIndexNOT;
	
	noticeActions[index] = action;
	noticeIDs[index] = noticeid;
	noticeCheckBoxes[index] = myCheckbox;
	
	ajaxObjectsNOT[index] = new sack();
	ajaxObjectsNOT[index].method = 'POST';

	ajaxObjectsNOT[index].requestFile = "/chessclub/notices_util.php";
	ajaxObjectsNOT[index].setVar('action',action);
	ajaxObjectsNOT[index].setVar('noticeid',noticeid);
	ajaxObjectsNOT[index].onCompletion = function(){ processNoticeActionReturn(index); }
	ajaxObjectsNOT[index].onError = function(){ ajaxErrorNOT(); }
	ajaxObjectsNOT[index].runAJAX();
}

function doNoticeNavigate(noticeid, url) {
	//alert("Action: navigate  noticeid: " + noticeid + "  url: " + url);
	
	if(ajaxIndexNOT++ > 99)
		ajaxIndexNOT = 0;
	var index = ajaxIndexNOT;
	
	noticeActions[index] = 'navigate';
	noticeIDs[index] = noticeid;
	
	ajaxObjectsNOT[index] = new sack();
	ajaxObjectsNOT[index].method = 'POST';

	ajaxObjectsNOT[index].requestFile = "/chessclub/notices_util.php";
	ajaxObjectsNOT[index].setVar('action','navigate');
	ajaxObjectsNOT[index].setVar('noticeid',noticeid);
	ajaxObjectsNOT[index].setVar('redirect_url',url);
	ajaxObjectsNOT[index].onCompletion = function(){ processNoticeActionReturn(index); }
	ajaxObjectsNOT[index].onError = function(){ ajaxErrorNOT(); }
	ajaxObjectsNOT[index].runAJAX();
}


function processNoticeActionReturn(index) {
	var result = ajaxObjectsNOT[index].response;
	
	//alert("Return: " + noticeActions[index] + " " + noticeIDs[index] + " " + result);
	//alert("Return: |" + result + "| ");
	//alert(ajaxObjectsNOT[index].responseStatus[0] + " " + ajaxObjectsNOT[index].responseStatus[1]);
	if(noticeActions[index] == 'navigate') {
		if(ajaxObjectsNOT[index].responseStatus[0] == 200) {
			// redirect
			window.location = result;
		} else {
			alert("Error: " + ajaxObjectsNOT[index].responseStatus[0] + " " + ajaxObjectsNOT[index].responseStatus[1]);
		}
	} else if(noticeActions[index] == 'mark') {
		if(result == 'FAIL') {
			// reset checkbox to unckecked
			noticeCheckBoxes[index].checked = false;
		}
	} else if(noticeActions[index] == 'unmark') {
		if(result == 'FAIL') {
			// reset checkbox to unckecked
			noticeCheckBoxes[index].checked = true;
		}
	}
}

pollnotice();
