if (document.getElementById && document.createTextNode){canDOM=true}
function collapse(id,plus){
	if (canDOM && document.getElementById(id)){
	    elm=document.getElementById(id);
        pelm=document.getElementById(plus);
        
	    if(elm.style.display=='none'||elm.style.display==''){
            elm.style.display= 'block';
            pelm.innerHTML="- ";
        }
        else{
            elm.style.display= 'none';
            pelm.innerHTML="+ ";
        }
	}
}

function confirmLink(msg)
{
    return confirm(msg);
}

function setDate(area,val){
    var obj = document.getElementById(area);
    obj.value = val;
}

function play(objid){
    var obj = document.getElementById(objid);
    var filename = obj.getAttribute('file');
    var lsid = obj.getAttribute('lsid');
    window.open("play.php?clip="+ filename +"&lsid="+ lsid,"Play","width=410,height=160,toolbar=no,status=no,menubar=no,location=no");
}

/********************
Lesson sound files
********************/
var lsArray = new Array();

function toggle(lsid,status){
    lsname = 'sng_'+ lsid +'[]';
    tgl = status ? "block" : "none";
    obj = document.getElementsByName(lsname);
    for (var i = 0;i < obj.length;i++) {
        obj[i].style.display = tgl;
    }
}

function showAll(){
    for(i = 0;i < lsArray.length;i++){
        toggle(lsArray[i],1);
    }
}

function hideAll(){
    for(i = 0;i < lsArray.length;i++){
        toggle(lsArray[i],0);
    }
}

/********************
Ajax functions
*********************/
function GetXmlHttpObject(handler){ 
    var objXMLHttp=null
    if (window.XMLHttpRequest){
        objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject){
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
}

function getUserLevels(lang,lvid){
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null){
        alert ("Browser does not support HTTP Request");
        return;
    }

    var url = "ajax.php?action=getlevels&lnid="+ lang +"&lvid="+ lvid;
    xmlHttp.onreadystatechange = stateChangedLevels;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function getLevels(ln,lvid){
    var lnid = document.getElementById(ln).value

    document.getElementById("levels").innerHTML ="<span style='font-family:Tahoma;font-size:10px;color:#333333;'>Sending request...</span>";
    
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null){
        alert ("Browser does not support HTTP Request");
        return;
    }

    var url = "ajax.php?action=getlevels&lnid="+ lnid +"&lvid="+ lvid;
    xmlHttp.onreadystatechange = stateChangedLevels;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function stateChangedLevels(){
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
        document.getElementById("levels").innerHTML = xmlHttp.responseText;
        //document.getElementById("txtResult").innerHTML = "";
    } 
}

var curPage = 1;
var pgcount = 1;
var pgnum = 1;
var Gbkid = 0;

function getPage(bkid,pgid,action){
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null){
        alert ("Browser does not support HTTP Request");
        return;
    }

    pgcount = document.getElementById('jumpMenu').value;
    
    if(pgid == 'auto'){
        pgid = document.getElementById('pageNum').value;
    }
    
    if(action == 'next'){
        curPage = parseInt(pgid) + parseInt(pgcount);
        pgid = (parseInt(pgid)) + parseInt(pgcount);
    }
    else if(action == 'prev'){
        curPage = parseInt(pgid) - parseInt(pgcount);
        pgid = parseInt(pgid) - parseInt(pgcount);
    }
    else if(action == 'res'){
        pgnum = pgid;
        curPage = pgid;
    }
    else if(action == 'seek'){
        curPage = parseInt(pgid);
        pgid = parseInt(pgid);
    }
    
    pgnum = pgid;

    var url = "ajax.php?action=getPage&bkid="+ bkid +"&page="+ pgid +"&pgcount="+ pgcount;
    Gbkid = bkid;
    
    document.getElementById("loadImg").style.display = 'block';
    document.getElementById("loadImgTop").style.display = 'block';
    document.getElementById("pages").style.display = 'none';//Will be BLOCK in getPageNums()
    
    xmlHttp.onreadystatechange = stateChangedPage;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function stateChangedPage(){
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
        var response = xmlHttp.responseText.split("||");;
        var pageContent = response[0];
        var pageSpec = response[1].split('&&');

        pgnum = (pgnum == 0) ? pgnum + 1 : pgnum;
        document.getElementById('curPageStart').innerHTML = pageSpec[1];
        
        var pgEnd = parseInt(pageSpec[1]) + parseInt(pgcount) - 1;
        pgEnd = (pgEnd < pageSpec[2]) ? pgEnd : pageSpec[2];
        document.getElementById('curPageEnd').innerHTML = pgEnd;
        
        document.getElementById('pageNum').value = pageSpec[1];
        
        document.getElementById("pageContent").innerHTML = pageContent;
        
        document.getElementById("loadImg").style.display = 'none';
        document.getElementById("loadImgTop").style.display = 'none';
        hideAll();

        getPageNums(Gbkid,10);
    } 
}

//Go to selected page in index section
function showPage(bkid,pgnum){
    document.getElementById('jumpMenu').value = 1;
    getPage(bkid,pgnum,'seek');
    showTable('tab3','t3');
}

function getPageNums(bkid,pagesshow){
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null){
        alert ("Browser does not support HTTP Request");
        return;
    }
    
    if(pagesshow == '') pagesshow = 10;
    
    pgnum = document.getElementById('pageNum').value;
    pgcount = document.getElementById('jumpMenu').value;
    
    var url = "ajax.php?action=getPagesNum&bkid="+ bkid +"&page="+ pgnum +"&pgcount="+ pgcount +"&pgshow="+ pagesshow;
    xmlHttp.onreadystatechange = stateChangedPagesNum;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function stateChangedPagesNum(){
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
        var response = xmlHttp.responseText;
        var pageContent = response;

        document.getElementById("pages").innerHTML = pageContent;
        document.getElementById("pages").style.display = 'block';
    } 
}

/********************
Tree functions
*********************/
function showTree(obj){
    var tree = document.getElementById(obj);
    if (tree.style.display == "none"){
        tree.style.display = "block";
    }else{
        tree.style.display = "none";
    }
}

function countTree(obj){
    var tree = document.getElementById(obj);
    //var tree = document.getElementById("tree");
    var lists = [ tree ];
    for (var i = 0; i < tree.getElementsByTagName("ul").length; i++) lists[lists.length] = tree.getElementsByTagName("ul")[i];
    for (var i = 0; i < lists.length; i++){
        var item = lists[i].lastChild;
        while (!item.tagName || item.tagName.toLowerCase() != "li") item = item.previousSibling;
        item.className += " last";
    }
}

/********************
Show hint
*********************/
var horizontal_offset="-230px" //horizontal offset of hint box from anchor link
/////No further editting needed
var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null){
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft :
        totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
return totaloffset;
}

function iecompattest(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function clearbrowseredge(obj, whichedge){
    var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
    if (whichedge=="rightedge"){
        var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
        dropmenuobj.contentmeasure = dropmenuobj.offsetWidth
        if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
    }
    else{
        var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
        dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
        if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
    }
    return edgeoffset
}
function showhint(menucontents, obj, e, tipwidth){
    if ((ie||ns6) && document.getElementById("hintbox")){
        dropmenuobj=document.getElementById("hintbox")
        dropmenuobj.innerHTML=menucontents
        dropmenuobj.style.left=dropmenuobj.style.top=-500
        if (tipwidth!=""){
            dropmenuobj.widthobj=dropmenuobj.style
            dropmenuobj.widthobj.width=tipwidth
        }
        dropmenuobj.x=getposOffset(obj, "left")
        dropmenuobj.y=getposOffset(obj, "top")
        dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj,"rightedge")+obj.offsetWidth+"px"
        dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj,"bottomedge")+"px"
        dropmenuobj.style.visibility="visible"
        obj.onmouseout=hidetip
    }
}
function hidetip(e){
    dropmenuobj.style.visibility="hidden"
    dropmenuobj.style.left="-500px"
}
function createhintbox(){
    var divblock=document.createElement("div")
    divblock.setAttribute("id", "hintbox")
    document.body.appendChild(divblock)
}
if (window.addEventListener) window.addEventListener("load", createhintbox, false)
else if (window.attachEvent) window.attachEvent("onload", createhintbox)
else if (document.getElementById) window.onload=createhintbox

var tm = 0;

function calcTime(offset) {
    var d = new Date(tm);
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    var nd = new Date(utc + (3600000 * offset));
    var str = nd.getHours() +":"+ nd.getMinutes() +":"+ nd.getSeconds();
    return str;

}

function showtime() {
    tm+=1000;
    var timeValue = calcTime(-4);
    document.getElementById("clock").innerHTML = timeValue;
    timerID = setTimeout("showtime()",1000);
}

