// javascript for mini calendar module

var mini_cal_url = '';//'/admin/ajax.one';
var current_site_url = '';


function miniReportError(request) {
	alert('Sorry! There was an error.');
}

/*******************************************************************************
 *	Displays the loading screen and image while waiting for an ajax request.
 */
function showMiniCalendarLoading() {
	var parentElm = document.getElementById('miniCalContainer');
	parentElm.blur();
	var coordinates = getMiniCoordinates(parentElm);

	var loadingdiv = document.createElement("div");
	loadingdiv.style.background = 'white';
	loadingdiv.style.filter = 'alpha(opacity=50)';
	loadingdiv.style.opacity = '.5';
	loadingdiv.style.width = parentElm.offsetWidth + 'px';
	loadingdiv.style.height = parentElm.offsetHeight + 'px';
	loadingdiv.style.position = 'absolute';
	loadingdiv.style.top = coordinates.y + 'px';
	loadingdiv.style.left = coordinates.x + 'px';
	loadingdiv.style.verticalAlign = 'middle';
	loadingdiv.style.textAlign = 'center';
	loadingdiv.innerHTML = '<img src="/resources/images/admin/indicator.gif" '
												+ 'style="position:relative; top:75px; width:80px;" />';

	//add to docpane
	document.getElementById('miniCalContainer').appendChild(loadingdiv);
}

/*******************************************************************************
 *	Get the x and y coordinates of the given element.
 */
function getMiniCoordinates(obj) {
	var point = { x: 0, y: 0 };

	while(obj) {
	  point.x += obj.offsetLeft ;
	  point.y += obj.offsetTop;
	  obj = obj.offsetParent;
	}

	return point;
}

function miniNextMonth(year,month,day,timezone,cal_ids_str,show_admin,user_relation) {
	showMiniCalendarLoading();
	
	var params = 'a=mini_next_month&year=' + year + '&month=' + month + '&day=' 
								+ day + '&timezone=' + timezone + '&cal_ids=' + cal_ids_str 
								+ '&show_admin=' + show_admin + '&user_relation=' + user_relation 
								+ '&current_site_url=' + current_site_url
								+ '&ms=' + new Date().getTime();
	
	YAHOO.util.Connect.asyncRequest(
		'GET',
		mini_cal_url + '?' + params,
		{
			success : handleMiniNextMonth,
			failure : miniReportError			
		}
	);
}

function handleMiniNextMonth(req) {
	//alert(req.responseText);
	document.getElementById('miniCalContainer').innerHTML = req.responseText;
}