function $(id) { return document.getElementById(id); }

function initializeHandbookView() {

	var handbook_node = $('handbooklisting');
	if (!handbook_node) return;
	var a_nodes = handbook_node.getElementsByTagName('a');

	for (var i=0; i<a_nodes.length; i++) {                                
		var a_node = a_nodes[i];
		if (a_node.className == 'handbookentry') {
			var new_url = 'javascript:popupHandbook(\'' + a_node.href + '\')';
			a_node.href = new_url;
		}
	}

	// Initialize popup
	/*
	var handbook_popup_node = $('booking-popup');
	
	if (!handbook_popup_node) {
		var handbook_popup_node = document.createElement('div');
		handbook_popup_node.id = 'handbook-popup';
		handbook_node.appendChild(handbook_popup_node);
	}*/
}

function hbsendAjaxRequest(query, func) {
	if (	isSendingRequest) {
		xhReq.onreadystatechange = function () {}
	 	xhReq.abort();		 	
	}
	isSendingRequest = true;	
	xhReq.open('GET', query, true);
	xhReq.setRequestHeader("raiseError", "False");
	xhReq.onreadystatechange = function() {
		if (xhReq.readyState != 4) return null;		
		func();
		xhReq.onreadystatechange = function () {}
	 	xhReq.abort();
	 	isSendingRequest = false;
	};
	xhReq.send(null);
}

/*
	Show popup information on Handbookentry
*/
function getXmlHttpRequest() {
    var ajaxobject = null;
    if ( window.XMLHttpRequest ) {
        // Objet XmlHttpRequest pour les moteurs GECKO
	ajaxobject = new XMLHttpRequest();   
    } else if ( window.ActiveXObject ) {
        // Objet XmlHttpRequest pour Internet Explorer
	ajaxobject = new ActiveXObject( 'Microsoft.XMLHTTP' );   
    } else {
        // Navigateur non-compatible
        ajaxobject = null;
    }
    return ajaxobject
}
var xhReq = getXmlHttpRequest();

/* 
	Info Popup when mouse is over a booking cell in the calendar view 
*/
var isSendingRequest = false;

function popupHandbook(handbook_url) {
	var handbook_popup_node = $('handbook-popup');
	if (!handbook_popup_node) return;
	handbook_popup_node.style.display = 'block';
	hbsendAjaxRequest(handbook_url + '/handbook_info_popup',
		function() {
			handbook_popup_node.style.top = document.documentElement.scrollTop
					+ (document.documentElement.clientHeight / 2)
					- handbook_popup_node.offsetHeight + 'px';
			handbook_popup_node.innerHTML = xhReq.responseText;
		}
	);
}

/*
	Close Handbook popup
*/

function closeHandbookPopup() {
    var handbook_popup_node = $('handbook-popup');
    handbook_popup_node.style.display = 'none';
}