var readerWindow;
var readerWindowX;
var readerWindowY;

function openReaderWindow(url)  {
	var windowHeight = 720;
	var windowWidth = 650;
	var windowX = 80;
	var windowY = 10;
	var windowName = "courseReader";
	var options = "screenX=" + windowX + ",screenY=" + windowY + ",top=" + windowY + ",left=" + windowX + ",dependent=yes,menubar=no,resizable=yes,toolbar=no,width=" + windowWidth + ",height=" + windowHeight + ",scrollbars=yes ";

    if (readerWindow != null && !readerWindow.closed){
        readerWindow.close();
    }

    readerWindow = null;
    readerWindow = window.open(url, windowName, options);
}

function closeReaderWindow()  {
	if ( readerWindow != null )  {
		readerWindow.close();
	}
}

function openReaderForCourse(courseID) {
	var url = "../reader/readerframesetcoursemap?eventType=getCourseForReader&courseID=" + courseID;
	openReaderWindow(url);
}

function openReaderForCourseFiltered(courseID, currForm) {
    if (eval("currForm.filtered"+ courseID)!=null){
        if (eval("currForm.filtered"+ courseID +".checked")){
            var url = "../reader/readerframesetcoursemap?eventType=getCourseForReader&courseID=" + courseID +"&filtered=true";
        }else{
            var url = "../reader/readerframesetcoursemap?eventType=getCourseForReader&courseID=" + courseID;
        }
    }else{
        var url = "../reader/readerframesetcoursemap?eventType=getCourseForReader&courseID=" + courseID;
    }
	openReaderWindow(url);
}
function openReaderForLesson(courseID, lessonID) {
	var url = "../reader/readerframesetcoursemap?eventType=getLessonForReader&courseID=" + courseID + "&lessonID=" + lessonID;
	openReaderWindow(url);
}

function openReaderForElement(courseID, elementID) {
	var url = "../reader/readerframesetcoursemap?eventType=getElementForReader&courseID=" + courseID + "&elementID=" + elementID;
	openReaderWindow(url);
}

function openReaderForSegment(courseID, segmentID) {
	var url = "../reader/readerframesetcoursemap?eventType=getSegmentForReader&courseID=" + courseID + "&segmentID=" + segmentID;
	openReaderWindow(url);
}

function openReader(level, courseID, id){

	if (level=='course'){
		openReaderForCourse(id);
	}else if (level=='lesson'){
		openReaderForLesson(courseID, id);
	}else if (level=='segment'){
		openReaderForSegment(courseID, id);
	}else if (level=='element'){
		openReaderForElement(courseID, id);
	}

}

function findCenterXPoint(windowWidth) {
    return ((screen.width - windowWidth) / 2);
}

function findCenterYPoint(windowHeight) {
    return ((screen.height - windowHeight) / 2);

}

var createBookmarkWindow;
function openCreateBookmarkWindow(defaultName) {
	var windowHeight = 150;
	var windowWidth = 750;
	var windowX = findCenterXPoint(windowWidth);
	var windowY = findCenterYPoint(windowHeight);
	var windowName = "createBookmarkPopup";
	var options = "statusbar=no,screenX=" + windowX + ",screenY=" + windowY + ",top=" + windowY + ",left=" + windowX + ",dependent=yes,menubar=no,resizable=no,toolbar=no,width=" + windowWidth + ",height=" + windowHeight + " ";

    var url = "createbookmark?defaultName="+defaultName;
    if (createBookmarkWindow!=null && !createBookmarkWindow.closed) {
        createBookmarkWindow.location.href = url;
    }
    else {
        createBookmarkWindow = null;
        createBookmarkWindow = window.open(url, windowName, options);
    }
}

function closeCreateBookmarkWindow()  {
	if ( createBookmarkWindow != null )  {
		createBookmarkWindow.close();
        createBookmarkWindow == null;
	}
}

var listBookmarksWindow;
function openListBookmarksWindow() {
	var windowHeight = 500;
	var windowWidth = 750;
	var windowX = findCenterXPoint(windowWidth);
	var windowY = findCenterYPoint(windowHeight);
	var windowName = "listBookmarksPopup";
	var options = "screenX=" + windowX + ",screenY=" + windowY + ",top=" + windowY + ",left=" + windowX + ",dependent=yes,menubar=no,resizable=yes,toolbar=no,width=" + windowWidth + ",height=" + windowHeight + ",scrollbars";

    var url = "listbookmarkspopup";
    if (listBookmarksWindow != null && !listBookmarksWindow.closed) {
        listBookmarksWindow.location.href = url;
    }
    else {
        listBookmarksWindow = null;
        listBookmarksWindow = window.open(url, windowName, options);
    }
}

function closeListBookmarksWindow()  {
	if ( listBookmarksWindow != null )  {
		listBookmarksWindow.close();
	}
}

function buildMenu(stylePath) {
    new xMenu1('trigger1', 'menu1', 10, 'mouseover');
}

/*
    xMenu1 Object Prototype

      Parameters:
        triggerId   - id string of trigger element.
        menuId      - id string of menu.
        mouseMargin - integer margin around menu;
                      when mouse is outside this margin the menu is hid.
        openEvent   - string name of event on which to open menu ('click', 'mouseover', etc).
*/
function xMenu1(triggerId, menuId, mouseMargin, openEvent) {

    var isOpen = false;
    var trg = xGetElementById(triggerId);
    var mnu = xGetElementById(menuId);
    if (trg && mnu) {
        xAddEventListener(trg, openEvent, onOpen, false);
    }

    function onOpen() {

        if (!isOpen) {
            xMoveTo(mnu, xPageX(trg), xPageY(trg) + xHeight(trg));
            xShow(mnu);
            xAddEventListener(document, 'click', onClick, false);
            xAddEventListener(document, 'mousemove', onMousemove, false);
            isOpen = true;
        }
    }

    function onClick(ev) {
        xHide(mnu);
        xRemoveEventListener(document, 'click', onClick, false);
        xRemoveEventListener(document, 'mousemove', onMousemove, false);
        isOpen = false;
    }

    function onMousemove(ev) {
        var e = new xEvent(ev);
        if (!xHasPoint(mnu, e.pageX, e.pageY, -mouseMargin) && !xHasPoint(trg, e.pageX, e.pageY, -mouseMargin)) {
            xHide(mnu);
            xRemoveEventListener(document, 'click', onClick, false);
            xRemoveEventListener(document, 'mousemove', onMousemove, false);
            isOpen = false;
        }
    }
} // end xMenu1


function asynchStopCourseTracking(){
	window.setTimeout('stopCourseTracking()', 500);
}

function stopCourseTracking(){
	var url = 'blank?eventType=storeCourseUsageData&ran='+Math.random();
	var xmlhttp = getXmlHttpRequest();
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
}

function getXmlHttpRequest(){
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}