var currentSubDoc = 0;
var currentPage = 0;
var tree;
var pagesTree;
var imagesPath="../static/images/tree/";
function getDSFrame() {
    return parent.dsFrame;
}

function getPagesFrame() {
    return parent.pagesFrame;
}

function showTerm (termID) {
    term = terms[termID];
    setPage (term.subDoc, term.page);
    highlights = term.highlights;
    if (highlights == null || highlights.length == 0){
        return;
    }

    for (i=0; i<highlights.length; i++){
        getDSFrame().highlightRect(highlights[i]);
    }

    firstHL = highlights[0];
    getDSFrame().scrollToXY(firstHL.x,firstHL.y);
}


function setPage (subDoc, page, updatePageTree) {
    if (currentSubDoc != subDoc || currentPage != page){
        currentSubDoc=subDoc;
        currentPage = page;
        getDSFrame().clearHighlights();
    }
    getPagesFrame().selectPageTree(subDoc, page, false);

    getDSFrame().setPageImage("page_"+subDoc+"_"+page+".png");
}


function loadDocumentTree(){
    tree=new dhtmlXTreeObject("documentTree","100%","100%","documentRoot");
    tree.setImagePath(imagesPath);
    tree.enableDragAndDrop(false);
    tree.enableCheckBoxes(false);
    tree.enableThreeStateCheckboxes(false);
    tree.setOnClickHandler(tonclick);
    tree.setOnDblClickHandler(tondblclick);

    tree.loadXML("data/documentTree.xsl");
    tree.openItem("document");
}


function loadPageStructureTree() {

    pagesTree=new dhtmlXTreeObject("pagesTree","100%","100%","pagesRoot");
    pagesTree.setImagePath(imagesPath);
    pagesTree.enableDragAndDrop(false);
    pagesTree.enableCheckBoxes(false);
    pagesTree.enableThreeStateCheckboxes(false);
    pagesTree.setOnClickHandler(onPageTreeClick);
//    tree.setOnDblClickHandler(tondblclick);

    pagesTree.loadXML("data/documentPages.xsl");
    pagesTree.openItem("pagesRoot");
}

function selectPageTree(subDoc, page){
    pageID="page_"+subDoc+"_"+page;
    pagesTree.selectItem(pageID);
}

function onPageTreeClick(id){
    if (id != null && id.indexOf("page_") == 0){
        pageID = id.split("_");
        setPage(pageID[1], pageID[2]);
    }
}


function tonclick(id){
    if (id != null && id.indexOf("term_") == 0){
        showTerm(id.substr(5));
        alias = tree.getUserData (id, "alias");
        if (alias != null){
            value = tree.getUserData (id, "value");
            copiedData=alias+":"+value;
            copyToClipboard (copiedData);
        }
    }
}

function tondblclick(id){
    tree.openAllItems(id);
}

function expandAll(){
    tree.openAllItems("document");
}

function clearHighlights(){
    parent.dsFrame.clearHighlights();
    setPage(currentSubDoc,currentPage);
}
