// $Header: /home/cvs/cvsroot/site_data/001/00000001/static_data/js/calendar2.js,v 1.13 2008/06/23 22:25:26 cauyeung Exp $

var cal2DisplayedDivMap = new Object(); // lookup ID of displayed DIV by custom ID

function cal2DisplayDiv (_clickedObj, _divID, _customID, _listDivID) {
//    alert ("dd: " + _divID + ' ' + _customID);

    var oldDisplayedDivID = cal2HideDisplayedDiv (_customID);
//    alert ("ddid: " + displayedDivID);
    if (oldDisplayedDivID == _divID)
        return;
    
    if (_listDivID) {
        // being displayed out of summary list
//        alert ("ldid1: " + _listDivID);
    }
    else {
        // not being displayed out of summary list--hide open summary list
//        alert ("ldid2: " + _listDivID);
        cal2HideDisplayedListDiv (_customID);
    }
    
    // TODO: position without clipping
    var pos = cal2ReturnPosition (_clickedObj);
    var detailDiv = document.getElementById(_divID);
    detailDiv.style.left = (pos.x + 32) + 'px';
    detailDiv.style.top  = (pos.y + 16) + 'px';
    detailDiv.style.display = 'block'; // BZ 30029
    detailDiv.style.display = '';
    
    cal2DisplayedDivMap[_customID] = _divID;
}

function cal2HideDisplayedDiv (_customID) {
    var displayedDivID = cal2DisplayedDivMap[_customID];
//    alert ("ddid: " + displayedDivID);
    if (displayedDivID) {
        cal2HideDiv (displayedDivID, _customID);
    }
    
    return displayedDivID;
}

function cal2HideDiv (_divID, _customID) {
//    alert ("hd: " + _divID + ' ' + _customID);

    $(_divID).style.display = 'none';
    cal2DisplayedDivMap[_customID] = null;
}

function cal2HideAllDivs() {
    for (var _customID in cal2DisplayedDivMap) {
        cal2HideDisplayedDiv(_customID);
    } 
}


var cal2DisplayedListDivMap = new Object(); // lookup ID of displayed list DIV by custom ID

function cal2DisplayListDiv (_clickedObj, _divID, _customID) {
    //alert ("dld: " + _divID + ' ' + _customID);

    var oldDisplayedListDivID = cal2HideDisplayedListDiv (_customID);
    //alert ("odldid: " + oldDisplayedListDivID);
    if (oldDisplayedListDivID == _divID) {
        return;
    }        

    cal2HideDisplayedDiv (_customID);

    // TODO: position without clipping
    var pos = cal2ReturnPosition (_clickedObj);
    var detailDiv = document.getElementById(_divID);
    
    detailDiv.style.left = (pos.x + 32) + 'px';
    detailDiv.style.top  = (pos.y + 16) + 'px';
    detailDiv.style.display = 'block'; // BZ 30029
    detailDiv.style.display = '';
    
    cal2DisplayedListDivMap[_customID] = _divID;
}

function cal2HideDisplayedListDiv (_customID) {
    var displayedListDivID = cal2DisplayedListDivMap[_customID];
    if (displayedListDivID) {
        cal2HideListDiv (displayedListDivID, _customID);
    }
    return displayedListDivID;
}

function cal2HideListDiv (_divID, _customID) {
//    alert ("hld: " + _divID + ' ' + _customID);
    
    cal2HideDisplayedDiv (_customID);
    $(_divID).style.display = 'none';    
    
    cal2DisplayedListDivMap[_customID] = null;
}

function cal2HideAllListDivs () {
    for (var _customID in cal2DisplayedListDivMap) {
        cal2HideDisplayedListDiv(_customID);
    } 
}

function cal2ReturnPosition (posObj) {
	var retVal = new Object();
	retVal.x = 0;
	retVal.y = 0;

	while (posObj) {
		retVal.x += posObj.offsetLeft;
		retVal.y += posObj.offsetTop;
		posObj = posObj.offsetParent;
	}
	return retVal;
}
