Changeset 26397 for main

Show
Ignore:
Timestamp:
25.10.2012 15:30:04 (7 years ago)
Author:
sjm84
Message:

Rewriting two more files using jQuery

Location:
main/trunk/greenstone3/web/interfaces/default/js
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/document_scripts.js

    r26390 r26397  
    3838    } 
    3939     
    40     var ajax = gs.functions.ajaxRequest(); 
    41     ajax.open("GET", gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?hl=" + hl + "&p.s=TextQuery&ilt=" + template.replace(" ", "%20"), true); 
    42     ajax.onreadystatechange = function() 
    43     { 
    44         if(ajax.readyState == 4 && ajax.status == 200) 
    45         { 
    46             var response = ajax.responseText; 
     40    var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?hl=" + hl + "&p.s=TextQuery&ilt=" + template.replace(" ", "%20"); 
     41     
     42    $.ajax(url) 
     43    .success(function(response) 
     44    { 
     45        if(response) 
     46        { 
     47            var textStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 
     48            var textEnd = response.lastIndexOf("<"); 
    4749             
    48             if(response) 
    49             { 
    50                 var textStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 
    51                 var textEnd = response.lastIndexOf("<"); 
    52                  
    53                 if(textStart == 0 || textEnd == -1 || textEnd <= textStart) 
    54                 { 
    55                     callback(""); 
    56                 } 
    57                  
    58                 var text = response.substring(textStart, textEnd); 
    59                 callback(text); 
    60             } 
    61             else 
    62             { 
    63                 callback(null); 
    64             } 
    65         } 
    66         else if(ajax.readyState == 4) 
     50            if(textStart == 0 || textEnd == -1 || textEnd <= textStart) 
     51            { 
     52                callback(""); 
     53            } 
     54             
     55            var text = response.substring(textStart, textEnd); 
     56            callback(text); 
     57        } 
     58        else 
    6759        { 
    6860            callback(null); 
    6961        } 
    70     } 
    71     ajax.send(); 
     62    }) 
     63    .error(function() 
     64    { 
     65        callback(null); 
     66    }); 
    7267} 
    7368 
     
    8883    template += '</xsl:template>'; 
    8984 
    90     var ajax = gs.functions.ajaxRequest(); 
    9185    var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?ilt=" + template.replace(" ", "%20"); 
    9286 
     
    9589        url += "&dt=hierarchy"; 
    9690    } 
    97     ajax.open("GET", url, true); 
    98     ajax.onreadystatechange = function() 
    99     { 
    100         if(ajax.readyState == 4 && ajax.status == 200) 
    101         { 
    102             var response = ajax.responseText; 
     91     
     92    $.ajax(url) 
     93    .success(function(response) 
     94    { 
     95        if(response) 
     96        { 
     97            var sectionsStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 
     98            var sectionsEnd = response.lastIndexOf("<"); 
    10399             
    104             if(response) 
    105             { 
    106                 var sectionsStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 
    107                 var sectionsEnd = response.lastIndexOf("<"); 
    108                  
    109                 if(sectionsStart == 0 || sectionsEnd == -1 || sectionsEnd <= sectionsStart) 
    110                 { 
    111                     callback(" "); 
    112                     return; 
    113                 } 
    114                  
    115                 var sections = response.substring(sectionsStart, sectionsEnd); 
    116                 callback(sections); 
    117             } 
    118             else 
    119             { 
    120                 callback(null); 
    121             } 
    122         } 
    123         else if(ajax.readyState == 4) 
     100            if(sectionsStart == 0 || sectionsEnd == -1 || sectionsEnd <= sectionsStart) 
     101            { 
     102                callback(" "); 
     103                return; 
     104            } 
     105             
     106            var sections = response.substring(sectionsStart, sectionsEnd); 
     107            callback(sections); 
     108        } 
     109        else 
    124110        { 
    125111            callback(null); 
    126112        } 
    127     } 
    128     ajax.send(); 
     113    }) 
     114    .error(function() 
     115    { 
     116        callback(null); 
     117    }); 
    129118} 
    130119 
    131120function toggleSection(sectionID, callback, tocDisabled) 
    132121{ 
    133     var docElem = document.getElementById("doc" + sectionID); 
    134     var tocElem = document.getElementById("toc" + sectionID); 
    135      
    136     var tocToggleElem = document.getElementById("ttoggle" + sectionID); 
    137     var docToggleElem = document.getElementById("dtoggle" + sectionID); 
    138      
    139     if(docElem.style.display == "none") 
    140     { 
    141         if(tocToggleElem && !tocDisabled) 
    142         { 
    143             tocToggleElem.setAttribute("src", gs.imageURLs.collapse); 
    144         } 
    145          
    146         if(tocElem && !tocDisabled) 
    147         { 
    148             tocElem.style.display = "block"; 
    149         } 
    150          
    151         if(gs.functions.hasClass(docElem, "noText")) 
     122    var docElem = gs.jqGet("doc" + sectionID); 
     123    var tocElem = gs.jqGet("toc" + sectionID); 
     124     
     125    var tocToggleElem = gs.jqGet("ttoggle" + sectionID); 
     126    var docToggleElem = gs.jqGet("dtoggle" + sectionID); 
     127     
     128    if(docElem.css("display") == "none") 
     129    { 
     130        if(tocToggleElem.length && !tocDisabled) 
     131        { 
     132            tocToggleElem.attr("src", gs.imageURLs.collapse); 
     133        } 
     134         
     135        if(tocElem.length && !tocDisabled) 
     136        { 
     137            tocElem.css("display", "block"); 
     138        } 
     139         
     140        if(docElem.hasClass("noText")) 
    152141        { 
    153142            getTextForSection(sectionID, function(text) 
     
    158147                    if(text.search("wrap" + nodeID) != -1) 
    159148                    { 
    160                         document.getElementById("zoomOptions").style.display = null; 
    161                         document.getElementById("pagedImageOptions").style.display = null; 
     149                        gs.jqGet("zoomOptions").css("display", null); 
     150                        gs.jqGet("pagedImageOptions").css("display", null); 
    162151                    } 
    163152                    getSubSectionsForSection(sectionID, function(sections) 
     
    165154                        if(sections) 
    166155                        { 
    167                             var textElem = document.getElementById("doc" + sectionID); 
    168                             $(textElem).html(text + sections); 
     156                            var textElem = gs.jqGet("doc" + sectionID); 
     157                            textElem.html(text + sections); 
    169158                             
    170                             docElem.setAttribute("class", docElem.getAttribute("class").replace(/\bnoText\b/g, "")); 
    171                             docElem.style.display = "block"; 
    172                             docToggleElem.setAttribute("src", gs.imageURLs.collapse); 
     159                            docElem.removeClass("noText"); 
     160                            docElem.css("display", "block"); 
     161                            docToggleElem.attr("src", gs.imageURLs.collapse); 
    173162                             
    174163                            if(callback) 
     
    177166                            } 
    178167                             
    179                             if(document.getElementById("viewSelection")) 
     168                            if(gs.jqGet("viewSelection").length) 
    180169                            { 
    181170                                changeView(); 
     
    184173                        else 
    185174                        { 
    186                             docToggleElem.setAttribute("src", gs.imageURLs.expand); 
     175                            docToggleElem.attr("src", gs.imageURLs.expand); 
    187176                            if(callback) 
    188177                            { 
     
    194183                else 
    195184                { 
    196                     docToggleElem.setAttribute("src", gs.imageURLs.expand); 
     185                    docToggleElem.attr("src", gs.imageURLs.expand); 
    197186                    if(callback) 
    198187                    { 
     
    202191            }); 
    203192         
    204             docToggleElem.setAttribute("src", gs.imageURLs.loading); 
     193            docToggleElem.attr("src", gs.imageURLs.loading); 
    205194        } 
    206195        else 
    207196        { 
    208             docToggleElem.setAttribute("src", gs.imageURLs.collapse); 
    209             docElem.style.display = "block"; 
     197            docToggleElem.attr("src", gs.imageURLs.collapse); 
     198            docElem.css("display", "block"); 
    210199             
    211200            if(callback) 
     
    217206    else 
    218207    { 
    219         docElem.style.display = "none"; 
     208        docElem.css("display", "none"); 
    220209         
    221210        //Use the page image if this is a leaf node and the chapter image if it not 
    222         docToggleElem.setAttribute("src", gs.imageURLs.expand); 
    223          
    224         if(tocToggleElem) 
    225         { 
    226             tocToggleElem.setAttribute("src", gs.imageURLs.expand); 
    227         } 
    228          
    229         if(tocElem) 
    230         { 
    231             tocElem.style.display = "none"; 
     211        docToggleElem.attr("src", gs.imageURLs.expand); 
     212         
     213        if(tocToggleElem.length) 
     214        { 
     215            tocToggleElem.attr("src", gs.imageURLs.expand); 
     216        } 
     217         
     218        if(tocElem.length) 
     219        { 
     220            tocElem.css("display", "none"); 
    232221        } 
    233222         
     
    288277function expandOrCollapseAll(expand) 
    289278{ 
    290     var divs = document.getElementsByTagName("DIV"); 
     279    var divs = $("div"); 
    291280    var startCounter = 0; 
    292281    var endCounter = 0; 
     
    294283    for(var i = 0; i < divs.length; i++) 
    295284    { 
    296         if(divs[i].getAttribute("id") && divs[i].getAttribute("id").search(/^doc/) != -1) 
    297         { 
    298             var id = divs[i].getAttribute("id").replace(/^doc(.*)/, "$1"); 
     285        if($(divs[i]).attr("id") && $(divs[i]).attr("id").search(/^doc/) != -1) 
     286        { 
     287            var id = $(divs[i]).attr("id").replace(/^doc(.*)/, "$1"); 
    299288            if(isExpanded(id) != expand) 
    300289            { 
     
    344333function loadTopLevelPage(callbackFunction, customURL) 
    345334{ 
    346     var ajax = gs.functions.ajaxRequest(); 
    347  
    348     var url = gs.xsltParams.library_name + "?a=d&c=" + gs.cgiParams.c + "&excerptid=gs-document"; 
    349     if(gs.cgiParams.d && gs.cgiParams.d.length > 0) 
    350     { 
    351         url += "&d=" + gs.cgiParams.d.replace(/([^.]*)\..*/, "$1"); 
    352     } 
    353     else if(gs.cgiParams.href && gs.cgiParams.href.length > 0) 
    354     { 
    355         url += "&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 
    356     } 
    357  
    358     if(customURL != null) 
    359     { 
    360         ajax.open("GET", customURL, true); 
     335    var url; 
     336    if(customURL) 
     337    { 
     338        url = customURL; 
    361339    } 
    362340    else 
    363341    { 
    364         ajax.open("GET", url, true); 
    365     } 
    366  
    367     ajax.onreadystatechange = function() 
    368     { 
    369         if(ajax.readyState == 4 && ajax.status == 200) 
    370         { 
    371             var response = ajax.responseText; 
     342        url = gs.xsltParams.library_name + "?a=d&c=" + gs.cgiParams.c + "&excerptid=gs-document"; 
     343        if(gs.cgiParams.d && gs.cgiParams.d.length > 0) 
     344        { 
     345            url += "&d=" + gs.cgiParams.d.replace(/([^.]*)\..*/, "$1"); 
     346        } 
     347        else if(gs.cgiParams.href && gs.cgiParams.href.length > 0) 
     348        { 
     349            url += "&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 
     350        } 
     351    } 
     352 
     353    $.ajax(url) 
     354    .success(function(response) 
     355    { 
     356        if(response) 
     357        { 
     358            var targetElem = gs.jqGet("gs-document"); 
     359            var docStart = response.indexOf(">") + 1; 
     360            var docEnd = response.lastIndexOf("<"); 
     361            var doc = response.substring(docStart, docEnd); 
     362 
     363            targetElem.html(doc); 
    372364             
    373             if(response) 
    374             { 
    375                 var targetElem = document.getElementById("gs-document"); 
    376                 var docStart = response.indexOf(">") + 1; 
    377                 var docEnd = response.lastIndexOf("<"); 
    378                 var doc = response.substring(docStart, docEnd); 
    379  
    380                 targetElem.innerHTML = doc; 
    381                  
    382                 if(callbackFunction) 
    383                 { 
    384                     callbackFunction(); 
    385                 } 
    386             } 
    387         } 
    388         else if(ajax.readyState == 4) 
    389         { 
    390             setTimeout(function(){loadTopLevelPage(callbackFunction, customURL);}, 1000); 
    391         } 
    392     }; 
    393     ajax.send(); 
     365            if(callbackFunction) 
     366            { 
     367                callbackFunction(); 
     368            } 
     369        } 
     370    }) 
     371    .error(function() 
     372    { 
     373        setTimeout(function(){loadTopLevelPage(callbackFunction, customURL);}, 1000); 
     374    }); 
    394375} 
    395376 
    396377function retrieveFullTableOfContents() 
    397378{ 
    398     var ajax = gs.functions.ajaxRequest(); 
    399      
    400379    var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "?excerptid=tableOfContents&ed=1"; 
    401380    if(gs.cgiParams.d && gs.cgiParams.d.length > 0) 
     
    407386        url += "&a=d&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 
    408387    } 
    409      
    410     ajax.open("GET", url, true); 
    411     ajax.onreadystatechange = function() 
    412     { 
    413         if(ajax.readyState == 4 && ajax.status == 200) 
    414         { 
    415             var newTOCElem = ajax.responseText; 
    416             var tocStart = newTOCElem.indexOf(">") + 1; 
    417             var tocEnd = newTOCElem.lastIndexOf("<"); 
    418              
    419             var newTOC = newTOCElem.substring(tocStart, tocEnd); 
    420              
    421             //Add the "Expand document"/"Collapse document" links 
    422             newTOC = "<table style=\"width:100%; text-align:center;\"><tr><td><a href=\"javascript:expandOrCollapseAll(true);\">Expand document</a></td><td><a href=\"javascript:expandOrCollapseAll(false);\">Collapse document</a></td></tr></table>" + newTOC; 
    423              
    424             //Collapse the TOC 
    425             newTOC = newTOC.replace(/display:block/g, "display:none"); 
    426             newTOC = newTOC.replace(/display:none/, "display:block"); 
    427             newTOC = newTOC.replace(/images\/collapse/g, "images/expand"); 
    428              
    429             var tocElem = document.getElementById("tableOfContents"); 
    430             tocElem.innerHTML = newTOC; 
    431              
    432             gs.variables.tocLoaded = true; 
    433         } 
    434         else if(ajax.readyState == 4) 
    435         { 
    436             setTimeout(retrieveFullTableOfContents, 1000); 
    437         } 
    438     } 
    439     ajax.send(); 
     388 
     389    $.ajax(url) 
     390    .success(function(newTOCElem) 
     391    { 
     392        var tocStart = newTOCElem.indexOf(">") + 1; 
     393        var tocEnd = newTOCElem.lastIndexOf("<"); 
     394         
     395        var newTOC = newTOCElem.substring(tocStart, tocEnd); 
     396         
     397        //Add the "Expand document"/"Collapse document" links 
     398        newTOC = "<table style=\"width:100%; text-align:center;\"><tr><td><a href=\"javascript:expandOrCollapseAll(true);\">Expand document</a></td><td><a href=\"javascript:expandOrCollapseAll(false);\">Collapse document</a></td></tr></table>" + newTOC; 
     399         
     400        //Collapse the TOC 
     401        newTOC = newTOC.replace(/display:block/g, "display:none"); 
     402        newTOC = newTOC.replace(/display:none/, "display:block"); 
     403        newTOC = newTOC.replace(/images\/collapse/g, "images/expand"); 
     404         
     405        var tocElem = gs.jqGet("tableOfContents"); 
     406        tocElem.html(newTOC); 
     407         
     408        gs.variables.tocLoaded = true; 
     409    }) 
     410    .error(function() 
     411    { 
     412        setTimeout(retrieveFullTableOfContents, 1000); 
     413    }); 
    440414} 
    441415 
    442416function isExpanded(sectionID) 
    443417{ 
    444     var docElem = document.getElementById("doc" + sectionID); 
    445     if(docElem.style.display == "block") 
     418    var docElem = gs.jqGet("doc" + sectionID); 
     419    if(docElem.css("display") == "block") 
    446420    { 
    447421        return true; 
     
    450424} 
    451425 
    452 function isParentOf(parent, child) 
    453 { 
    454     if(child.indexOf(parent) != -1 && child.length > parent.length && child[parent.length] == '.') 
    455     { 
    456         return true; 
    457     } 
    458     return false; 
    459 } 
    460  
    461426function minimizeSidebar() 
    462427{ 
    463     var toc = document.getElementById("contentsArea"); 
    464     var maxLink = document.getElementById("sidebarMaximizeButton"); 
    465     var minLink = document.getElementById("sidebarMinimizeButton"); 
    466      
    467     if(toc) 
    468     { 
    469         toc.style.display = "none"; 
    470     } 
    471      
    472     maxLink.style.display = "block"; 
    473     minLink.style.display = "none"; 
     428    var toc = gs.jqGet("contentsArea"); 
     429    var maxLink = gs.jqGet("sidebarMaximizeButton"); 
     430    var minLink = gs.jqGet("sidebarMinimizeButton"); 
     431     
     432    if(toc.length) 
     433    { 
     434        toc.css("display", "none"); 
     435    } 
     436     
     437    maxLink.css("display", "block"); 
     438    minLink.css("display", "none"); 
    474439} 
    475440 
    476441function maximizeSidebar() 
    477442{ 
    478     var coverImage = document.getElementById("coverImage"); 
    479     var toc = document.getElementById("contentsArea"); 
    480     var maxLink = document.getElementById("sidebarMaximizeButton"); 
    481     var minLink = document.getElementById("sidebarMinimizeButton"); 
    482      
    483     if(coverImage) 
    484     { 
    485         coverImage.style.display = "block"; 
    486     } 
    487      
    488     if(toc) 
    489     { 
    490         toc.style.display = "block"; 
    491     } 
    492      
    493     maxLink.style.display = "none"; 
    494     minLink.style.display = "block"; 
     443    var coverImage = gs.jqGet("coverImage"); 
     444    var toc = gs.jqGet("contentsArea"); 
     445    var maxLink = gs.jqGet("sidebarMaximizeButton"); 
     446    var minLink = gs.jqGet("sidebarMinimizeButton"); 
     447     
     448    if(coverImage.length) 
     449    { 
     450        coverImage.css("display", "block"); 
     451    } 
     452     
     453    if(toc.length) 
     454    { 
     455        toc.css("display", "block"); 
     456    } 
     457     
     458    maxLink.css("display", "none"); 
     459    minLink.css("display", "block"); 
    495460} 
    496461 
     
    501466function changeView() 
    502467{ 
    503     var viewList = document.getElementById("viewSelection"); 
    504     var currentVal = viewList.value; 
     468    var viewList = gs.jqGet("viewSelection"); 
     469    var currentVal = viewList.val(); 
    505470     
    506471    var view; 
     
    524489    } 
    525490     
    526     var ajax = gs.functions.ajaxRequest(); 
    527     ajax.open("GET", gs.xsltParams.library_name + "?a=d&view=" + view + "&c=" + gs.cgiParams.c); 
    528     ajax.send(); 
     491    var url = gs.xsltParams.library_name + "?a=d&view=" + view + "&c=" + gs.cgiParams.c; 
     492    $.ajax(url); 
    529493} 
    530494 
    531495function setImageVisible(visible) 
    532496{ 
    533     var divs = document.getElementsByTagName("DIV"); 
     497    var divs = $("div"); 
    534498    var images = new Array(); 
    535499    for (var i = 0; i < divs.length; i++) 
    536500    { 
    537         if(divs[i].id && divs[i].id.search(/^image/) != -1) 
    538         { 
    539             images.push(divs[i]); 
     501        if($(divs[i]).attr("id") && $(divs[i]).attr("id").search(/^image/) != -1) 
     502        { 
     503            images.push($(divs[i])); 
    540504        } 
    541505    } 
     
    546510        if(visible) 
    547511        { 
    548             image.style.display = "block"; 
     512            image.css("display", "block"); 
    549513        } 
    550514        else 
    551515        { 
    552             image.style.display = "none"; 
     516            image.css("display", "none"); 
    553517        } 
    554518    } 
     
    557521function setTextVisible(visible) 
    558522{ 
    559     var divs = document.getElementsByTagName("DIV"); 
     523    var divs = $("div"); 
    560524    var textDivs = new Array(); 
    561525    for (var i = 0; i < divs.length; i++) 
    562526    { 
    563         if(divs[i].id && divs[i].id.search(/^text/) != -1) 
    564         { 
    565             textDivs.push(divs[i]); 
     527        if($(divs[i]).attr("id") && $(divs[i]).attr("id").search(/^text/) != -1) 
     528        { 
     529            textDivs.push($(divs[i])); 
    566530        } 
    567531    } 
     
    572536        if(visible) 
    573537        { 
    574             text.style.display = "block"; 
     538            text.css("display", "block"); 
    575539        } 
    576540        else 
    577541        { 
    578             text.style.display = "none"; 
     542            text.css("display", "none"); 
    579543        } 
    580544    } 
     
    589553    ilt +=   '</xsl:for-each>'; 
    590554    ilt += '</xsl:template>'; 
    591  
    592     var ajax = gs.functions.ajaxRequest(); 
    593     ajax.open("GET", gs.xsltParams.library_name + "?a=d&ed=1&c=" + gs.cgiParams.c + "&d=" + gs.cgiParams.d + "&ilt=" + ilt.replace(/ /g, "%20"), true); 
    594     ajax.onreadystatechange = function() 
    595     { 
    596         if(ajax.readyState == 4 && ajax.status == 200) 
    597         { 
    598             document.getElementById("tableOfContents").innerHTML = ajax.responseText; 
    599             replaceLinksWithSlider(); 
    600             var loading = document.getElementById("tocLoadingImage"); 
    601             loading.parentNode.removeChild(loading); 
    602         } 
    603         else if(ajax.readyState == 4) 
    604         { 
    605             setTimeout(function(){retrieveTableOfContentsAndTitles();}, 1000); 
    606         } 
    607     } 
    608     ajax.send(); 
     555     
     556    var url = gs.xsltParams.library_name + "?a=d&ed=1&c=" + gs.cgiParams.c + "&d=" + gs.cgiParams.d + "&ilt=" + ilt.replace(/ /g, "%20"); 
     557 
     558    $.ajax(url) 
     559    .success(function(response) 
     560    { 
     561        gs.jqGet("tableOfContents").html(response); 
     562        replaceLinksWithSlider(); 
     563        var loading = gs.jqGet("tocLoadingImage"); 
     564        loading.remove(); 
     565    }) 
     566    .error(function() 
     567    { 
     568        setTimeout(function(){retrieveTableOfContentsAndTitles();}, 1000); 
     569    }); 
    609570} 
    610571 
    611572function replaceLinksWithSlider() 
    612573{ 
    613     var tableOfContents = document.getElementById("tableOfContents"); 
    614     var liElems = tableOfContents.getElementsByTagName("LI"); 
    615      
     574    var tableOfContents = gs.jqGet("tableOfContents"); 
     575    var liElems = tableOfContents.find("li"); 
     576 
    616577    var leafSections = new Array(); 
    617578    for (var i = 0; i < liElems.length; i++) 
    618579    { 
    619         var section = liElems[i]; 
     580        var section = $(liElems[i]); 
    620581        var add = true; 
    621582        for(var j = 0; j < leafSections.length; j++) 
     
    623584            if(leafSections[j] == undefined){continue;} 
    624585             
    625             var leaf = leafSections[j]; 
    626             if(leaf.getAttribute("id").search(section.getAttribute("id")) != -1) 
     586            var leaf = $(leafSections[j]); 
     587            if(leaf.attr("id").search(section.attr("id")) != -1) 
    627588            { 
    628589                add = false; 
    629590            } 
    630591             
    631             if(section.getAttribute("id").search(leaf.getAttribute("id")) != -1) 
     592            if(section.attr("id").search(leaf.attr("id")) != -1) 
    632593            { 
    633594                delete leafSections[j]; 
    634595            } 
    635596        } 
    636          
     597 
    637598        if(add) 
    638599        { 
     
    644605    { 
    645606        if(leafSections[i] == undefined){continue;} 
    646         leafSections[i].style.display = "none"; 
    647         var links = leafSections[i].getElementsByTagName("A"); 
     607 
     608        leafSections[i].css("display", "none"); 
     609        var links = leafSections[i].find("a"); 
     610 
    648611        var widget = new SliderWidget(links); 
    649         leafSections[i].parentNode.insertBefore(widget.getElem(), leafSections[i]); 
    650     } 
    651      
     612        leafSections[i].before(widget.getElem()); 
     613    } 
     614 
    652615    //Disable all TOC toggles 
    653     var imgs = document.getElementsByTagName("IMG"); 
     616    var imgs = $("img"); 
    654617    for(var j = 0; j < imgs.length; j++) 
    655618    { 
    656         var currentImage = imgs[j]; 
    657         if(currentImage.getAttribute("id") && currentImage.getAttribute("id").search(/^ttoggle/) != -1) 
    658         { 
    659             currentImage.setAttribute("onclick", ""); 
    660         } 
    661         else if(currentImage.getAttribute("id") && currentImage.getAttribute("id").search(/^dtoggle/) != -1) 
    662         { 
    663             currentImage.setAttribute("onclick", currentImage.getAttribute("onclick").replace(/\)/, ", null, true)")); 
     619        var currentImage = $(imgs[j]); 
     620        if(currentImage.attr("id") && currentImage.attr("id").search(/^ttoggle/) != -1) 
     621        { 
     622            currentImage.attr("onclick", ""); 
     623        } 
     624        else if(currentImage.attr("id") && currentImage.attr("id").search(/^dtoggle/) != -1) 
     625        { 
     626            currentImage.attr("onclick", currentImage.attr("onclick").replace(/\)/, ", null, true)")); 
    664627        } 
    665628    } 
     
    673636 
    674637    //The container for the widget 
    675     var _mainDiv = document.createElement("DIV"); 
    676     _mainDiv.setAttribute("class", "ui-widget-content pageSlider"); 
     638    var _mainDiv = $("<div>"); 
     639    _mainDiv.attr("class", "ui-widget-content pageSlider"); 
    677640     
    678641    //The table of images 
    679     var _linkTable = document.createElement("TABLE"); 
    680     _mainDiv.appendChild(_linkTable); 
     642    var _linkTable = $("<table>"); 
     643    _mainDiv.append(_linkTable); 
    681644     
    682645    //The image row of the table 
    683     var _linkRow = document.createElement("TR"); 
    684     _linkTable.appendChild(_linkRow); 
     646    var _linkRow = $("<tr>"); 
     647    _linkTable.append(_linkRow); 
    685648     
    686649    //The list of titles we can search through 
    687650    var _titles = new Array(); 
     651     
     652    //Keep track of the slider position 
     653    var _prevScroll = 0; 
    688654 
    689655    //**************** 
     
    741707                    for(var i = 0; i < _titles.length; i++) 
    742708                    { 
    743                         _titles[i][1].cell.style.display = "none"; 
     709                        $(_titles[i][1].cell).css("display", "none"); 
    744710                    } 
    745711                     
    746712                    for(var i = 0; i < matchingTitles.length; i++) 
    747713                    { 
    748                         matchingTitles[i][1].cell.style.display = "table-cell"; 
     714                        $(matchingTitles[i][1].cell).css("display", "table-cell"); 
    749715                    } 
    750716                } 
     
    757723                    if(currentTitle[0].search(currentValue.replace(/\./g, "\\.")) != -1) 
    758724                    { 
    759                         currentTitle[1].cell.style.display = "table-cell"; 
     725                        $(currentTitle[1].cell).css("display", "table-cell"); 
    760726                    } 
    761727                    else 
    762728                    { 
    763                         currentTitle[1].cell.style.display = "none"; 
     729                        $(currentTitle[1].cell).css("display", "none"); 
    764730                    } 
    765731                } 
     
    770736    var getImage = function(page, attemptNumber) 
    771737    { 
    772         var ajax = gs.functions.ajaxRequest(); 
    773  
    774738        var href = page.getAttribute("href"); 
    775739        var startHREF = href.indexOf("'") + 1; 
     
    797761        template += '</xsl:template>'; 
    798762 
    799         ajax.open("GET", href + "?ilt=" + template.replace(" ", "%20")); 
    800         ajax.onreadystatechange = function() 
    801         { 
    802             if(ajax.readyState == 4 && ajax.status == 200) 
    803             { 
    804                 var text = ajax.responseText; 
    805                 var hrefStart = text.indexOf("src=\"") + 5; 
    806                 if(hrefStart == -1) 
    807                 { 
    808                     page.isLoading = false; 
    809                     page.noImage = true; 
    810                     page.image.setAttribute("src", gs.imageURLs.blank); 
    811                     return; 
    812                 } 
    813                 var hrefEnd = text.indexOf("\"", hrefStart); 
    814                 var href = text.substring(hrefStart, hrefEnd); 
    815  
    816                 var image = document.createElement("IMG"); 
    817                 $(image).load(function() 
    818                 { 
    819                     page.link.innerHTML = ""; 
    820                     page.link.appendChild(image); 
    821                     page.isLoading = false; 
    822                     page.imageLoaded = true; 
    823                 }); 
    824                 $(image).error(function() 
    825                 { 
    826                     if(!attemptNumber || attemptNumber < 3) 
    827                     { 
    828                         setTimeout(function(){getImage(page, ((!attemptNumber) ? 1 : attemptNumber + 1));}, 500); 
    829                     } 
    830                     else 
    831                     { 
    832                         page.isLoading = false; 
    833                         page.noImage = true; 
    834                         image.setAttribute("src", gs.imageURLs.blank); 
    835                     } 
    836                 }); 
    837                 image.setAttribute("src", href); 
    838                  
    839                 var titleStart = text.indexOf("<p>") + 3; 
    840                 var titleEnd = text.indexOf("</p>"); 
    841                 var title = text.substring(titleStart, titleEnd); 
    842             } 
    843             else if (ajax.readyState == 4) 
    844             { 
    845                 page.failed = true; 
     763        var url = href + "?ilt=" + template.replace(" ", "%20"); 
     764        $.ajax(url) 
     765        .success(function(text) 
     766        { 
     767            var hrefStart = text.indexOf("src=\"") + 5; 
     768            if(hrefStart == -1) 
     769            { 
     770                page.isLoading = false; 
     771                page.noImage = true; 
     772                $(page.image).attr("src", gs.imageURLs.blank); 
     773                return; 
     774            } 
     775            var hrefEnd = text.indexOf("\"", hrefStart); 
     776            var href = text.substring(hrefStart, hrefEnd); 
     777 
     778            var image = $("<img>"); 
     779            image.load(function() 
     780            { 
     781                $(page.link).html(""); 
     782                $(page.link).append(image); 
     783                page.isLoading = false; 
     784                page.imageLoaded = true; 
     785            }); 
     786            image.error(function() 
     787            { 
    846788                if(!attemptNumber || attemptNumber < 3) 
    847789                { 
     
    850792                else 
    851793                { 
    852                     var image = document.createElement("IMG"); 
    853                     image.setAttribute("src", gs.imageURLs.blank); 
    854                     page.link.innerHTML = ""; 
    855                     page.link.appendChild(image); 
    856794                    page.isLoading = false; 
    857795                    page.noImage = true; 
     796                    image.attr("src", gs.imageURLs.blank); 
    858797                } 
    859             } 
    860         } 
    861         ajax.send(); 
     798            }); 
     799            image.attr("src", href); 
     800             
     801            var titleStart = text.indexOf("<p>") + 3; 
     802            var titleEnd = text.indexOf("</p>"); 
     803            var title = text.substring(titleStart, titleEnd); 
     804        }) 
     805        .error(function() 
     806        { 
     807            page.failed = true; 
     808            if(!attemptNumber || attemptNumber < 3) 
     809            { 
     810                setTimeout(function(){getImage(page, ((!attemptNumber) ? 1 : attemptNumber + 1));}, 500); 
     811            } 
     812            else 
     813            { 
     814                var image = document.createElement("IMG"); 
     815                image.setAttribute("src", gs.imageURLs.blank); 
     816                page.link.innerHTML = ""; 
     817                page.link.appendChild(image); 
     818                page.isLoading = false; 
     819                page.noImage = true; 
     820            } 
     821        }); 
    862822    } 
    863823     
    864824    var startCheckFunction = function() 
    865825    { 
    866         var checkFunction = function() 
    867         { 
    868             var widgetLeft = _mainDiv.scrollLeft; 
    869             var widgetRight = _mainDiv.clientWidth + _mainDiv.scrollLeft; 
    870  
    871             var visiblePages = new Array(); 
    872             for(var i = 0; i < _links.length; i++) 
    873             { 
    874                 var current = _links[i].cell; 
    875                 var currentLeft = current.offsetLeft; 
    876                 var currentRight = currentLeft + current.clientWidth; 
    877                 if(currentRight > widgetLeft && currentLeft < widgetRight) 
    878                 { 
    879                     visiblePages.push(_links[i]); 
    880                 } 
    881             } 
    882  
    883             for(var i = 0; i < visiblePages.length; i++) 
    884             { 
    885                 var page = visiblePages[i]; 
    886                 if(!page || page.imageLoaded || page.noImage || page.isLoading) 
    887                 { 
    888                     continue; 
     826        var checkFunction = function(forced) 
     827        { 
     828            //Don't bother checking if we haven't scrolled very far 
     829            if(Math.abs(_mainDiv.scrollLeft() - _prevScroll) > 100 || forced) 
     830            { 
     831                _prevScroll = _mainDiv.scrollLeft(); 
     832                _checking = true; 
     833                var widgetLeft = _mainDiv.offset().left; 
     834                var widgetRight = widgetLeft + _mainDiv.width(); 
     835                 
     836                var visiblePages = new Array(); 
     837                for(var i = 0; i < _links.length; i++) 
     838                { 
     839                    var current = _links[i].cell; 
     840                    var currentLeft = current.offset().left; 
     841                    var currentRight = currentLeft + current.width(); 
     842 
     843                    if(currentRight > widgetLeft && currentLeft < widgetRight) 
     844                    { 
     845                        visiblePages.push(_links[i]); 
     846                    } 
    889847                } 
    890848                 
    891                 page.isLoading = true; 
    892                 getImage(page); 
    893             } 
    894         } 
    895          
    896         checkFunction(); 
    897         setInterval(checkFunction, 1000); 
     849                for(var i = 0; i < visiblePages.length; i++) 
     850                { 
     851                    var page = visiblePages[i]; 
     852                    if(!page || page.imageLoaded || page.noImage || page.isLoading) 
     853                    { 
     854                        continue; 
     855                    } 
     856                     
     857                    page.isLoading = true; 
     858                    getImage(page); 
     859                } 
     860                _checking = false; 
     861            } 
     862        } 
     863 
     864        setTimeout(checkFunction, 250); 
     865        setInterval(function(){checkFunction(true)}, 2000); 
     866        _mainDiv.scroll(checkFunction); 
    898867    } 
    899868     
     
    904873    for(var i = 0; i < _links.length; i++) 
    905874    { 
    906         var col = document.createElement("TD"); 
    907         _linkRow.appendChild(col); 
    908         col.setAttribute("class", "pageSliderCol"); 
     875        var col = $("<td>"); 
     876        _linkRow.append(col); 
     877        col.addClass("pageSliderCol"); 
    909878        _links[i].cell = col; 
    910879         
    911         var link = document.createElement("A"); 
    912         col.appendChild(link); 
     880        var link = $("<a>"); 
     881        col.append(link); 
    913882        _links[i].link = link; 
    914         var href = _links[i].getAttribute("href"); 
    915         link.setAttribute("href", href.replace(/\)/, ", 0, true)")); 
     883        var href = $(_links[i]).attr("href"); 
     884        link.attr("href", href.replace(/\)/, ", 0, true)")); 
    916885         
    917886        if(!_linkCellMap[href]) 
     
    921890        _linkCellMap[href].push(_links[i]); 
    922891         
    923         var image = document.createElement("IMG"); 
    924         link.appendChild(image); 
    925         image.setAttribute("src", gs.imageURLs.loading); 
     892        var loadingText = $("<p>Loading image</p>"); 
     893        link.append(loadingText); 
     894         
     895        var image = $("<img>"); 
     896        link.append(image); 
     897        image.attr("src", gs.imageURLs.loading); 
    926898        _links[i].image = image; 
    927899         
    928         var title = _links[i].innerHTML; 
     900        var title = $(_links[i]).html(); 
    929901        if(title.search(/^[^ ]+ [^ ]+$/) != -1) 
    930902        { 
     
    938910        _titles.push([title, _links[i]]); 
    939911         
    940         var text = document.createTextNode(title); 
    941         col.appendChild(document.createElement("BR")); 
    942         col.appendChild(text); 
     912        col.append($("<br>")); 
     913        col.append(title); 
    943914    } 
    944915     
     
    952923function swapHighlight(imageClicked) 
    953924{ 
    954     var hlCheckbox = document.getElementById("highlightOption"); 
     925    var hlCheckbox = $("#highlightOption"); 
    955926 
    956927    if(imageClicked) 
     
    961932    var from; 
    962933    var to; 
    963     if(hlCheckbox.checked) 
     934    if(hlCheckbox.attr("checked")) 
    964935    { 
    965936        from = "noTermHighlight"; 
     
    971942        to = "noTermHighlight"; 
    972943    } 
    973      
    974     var spans = document.getElementsByTagName("span"); 
    975     for(var i = 0; i < spans.length; i++) 
    976     { 
    977         var currentSpan = spans[i]; 
    978         if(currentSpan.getAttribute("class") == from) 
    979         { 
    980             currentSpan.setAttribute("class", to); 
    981         } 
    982     } 
     944 
     945    var spans = $("span").each(function() 
     946    { 
     947        if($(this).hasClass(from)) 
     948        { 
     949            $(this).removeClass(from); 
     950            $(this).addClass(to); 
     951        } 
     952    }); 
    983953} 
    984954 
     
    997967function hideText() 
    998968{ 
    999     var textDiv = document.getElementById("gs-document-text"); 
    1000     textDiv.style.visibility = "hidden"; 
     969    $("#gs-document-text").css("visibility", "hidden"); 
    1001970} 
    1002971 
    1003972function showText() 
    1004973{ 
    1005     var textDiv = document.getElementById("gs-document-text"); 
    1006     textDiv.style.visibility = "visible"; 
     974    $("#gs-document-text").css("visibility", "visible"); 
    1007975} 
    1008976 
    1009977function hideBook() 
    1010978{ 
    1011     var bookDiv = document.getElementById("bookdiv"); 
    1012     bookDiv.style.visibility = "hidden"; 
    1013     bookDiv.style.height = "0px"; 
    1014      
    1015     var bookObject = document.getElementById("bookObject"); 
    1016     bookObject.style.visibility = "hidden"; 
    1017     bookObject.style.height = "0px"; 
    1018      
    1019     var bookEmbed = document.getElementById("bookEmbed"); 
    1020     bookEmbed.style.visibility = "hidden"; 
    1021     bookEmbed.style.height = "0px"; 
     979    $("#bookDiv, #bookObject, #bookEmbed").css({"visibility": "hidden", "height": "0px"}); 
    1022980} 
    1023981 
    1024982function showBook() 
    1025983{ 
    1026     var bookDiv = document.getElementById("bookdiv"); 
    1027     bookDiv.style.visibility = "visible"; 
    1028     bookDiv.style.height = "600px"; 
    1029      
    1030     var bookObject = document.getElementById("bookObject"); 
    1031     bookObject.style.visibility = "visible"; 
    1032     bookObject.style.height = "600px"; 
    1033      
    1034     var bookEmbed = document.getElementById("bookEmbed"); 
    1035     bookEmbed.style.visibility = "visible"; 
    1036     bookEmbed.style.height = "600px"; 
     984    $("#bookDiv, #bookObject, #bookEmbed").css({"visibility": "visible", "height": "600px"}); 
    1037985} 
    1038986 
    1039987function swapLinkJavascript(rbOn) 
    1040988{ 
    1041     var option = document.getElementById("rbOption"); 
    1042     var optionImage = document.getElementById("rbOptionImage"); 
     989    var option = $("#rbOption"); 
     990    var optionImage = $("#rbOptionImage"); 
    1043991     
    1044992    if(rbOn) 
    1045993    { 
    1046         option.setAttribute("onclick", "hideText(); showBook(); swapLinkJavascript(false);"); 
    1047         optionImage.setAttribute("onclick", "hideText(); showBook(); swapLinkJavascript(false);"); 
     994        option.attr("onclick", "hideText(); showBook(); swapLinkJavascript(false);"); 
     995        optionImage.attr("onclick", "hideText(); showBook(); swapLinkJavascript(false);"); 
    1048996        $(option).attr("checked", false); 
    1049997    } 
    1050998    else 
    1051999    { 
    1052         option.setAttribute("onclick", "hideBook(); showText(); swapLinkJavascript(true);"); 
    1053         optionImage.setAttribute("onclick", "hideBook(); showText(); swapLinkJavascript(true);"); 
     1000        option.attr("onclick", "hideBook(); showText(); swapLinkJavascript(true);"); 
     1001        optionImage.attr("onclick", "hideBook(); showText(); swapLinkJavascript(true);"); 
    10541002        $(option).attr("checked", true); 
    10551003    } 
    1056 } 
    1057  
    1058 //Helper function to create param elements 
    1059 function createParam(name, value) 
    1060 { 
    1061     var param = document.createElement("PARAM"); 
    1062     param.setAttribute("name", name); 
    1063     param.setAttribute("value", value); 
    1064     return param; 
    10651004} 
    10661005 
     
    10961035    flash_plug_html += '      type="application/x-shockwave-flash" width="70%" />\n'; 
    10971036    flash_plug_html += '</OBJECT>\n'; 
    1098     var flash_div = document.getElementById("bookdiv"); 
    1099     flash_div.innerHTML = flash_plug_html; 
    1100 } 
     1037    $("#bookdiv").html(flash_plug_html); 
     1038} 
     1039 
     1040/************************ 
     1041* METADATA EDIT SCRIPTS * 
     1042************************/ 
    11011043 
    11021044function addEditMetadataLink(cell) 
    11031045{ 
    1104     var id = cell.getAttribute("id").substring(6); 
    1105     var metaTable = document.getElementById("meta" + id); 
    1106  
    1107     var row = cell.parentNode; 
    1108     var newCell = document.createElement("TD"); 
    1109     newCell.setAttribute("style", "font-size:0.7em; padding:0px 10px"); 
    1110     newCell.setAttribute("class", "editMetadataButton"); 
    1111      
    1112     var linkSpan = document.createElement("SPAN"); 
    1113     linkSpan.setAttribute("class", "ui-state-default ui-corner-all"); 
    1114     linkSpan.setAttribute("style", "padding: 2px; float:left;"); 
    1115      
    1116     var linkLabel = document.createElement("SPAN"); 
    1117     linkLabel.innerHTML = "edit metadata"; 
     1046    cell = $(cell); 
     1047    var id = cell.attr("id").substring(6); 
     1048    var metaTable = gs.jqGet("meta" + id); 
     1049 
     1050    var row = cell.parent(); 
     1051    var newCell = $("<td>", {"style": "font-size:0.7em; padding:0px 10px", "class": "editMetadataButton"}); 
     1052    var linkSpan = $("<span>", {"class": "ui-state-default ui-corner-all", "style": "padding: 2px; float:left;"}); 
     1053     
     1054    var linkLabel = $("<span>edit metadata</span>");     
     1055    var linkIcon = $("<span>", {"class": "ui-icon ui-icon-folder-collapsed"}); 
     1056    newCell.linkIcon = linkIcon; 
    11181057    newCell.linkLabel = linkLabel; 
    1119     var linkIcon = document.createElement("SPAN"); 
    1120     linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 
    1121     newCell.linkIcon = linkIcon; 
    1122      
    1123     var uList = document.createElement("UL"); 
    1124     var labelItem = document.createElement("LI"); 
    1125     var iconItem = document.createElement("LI"); 
    1126     uList.appendChild(iconItem); 
    1127     uList.appendChild(labelItem); 
    1128     labelItem.appendChild(linkLabel); 
    1129     iconItem.appendChild(linkIcon); 
    1130      
    1131     uList.setAttribute("style", "outline: 0 none; margin:0px; padding:0px;"); 
    1132     labelItem.setAttribute("style", "float:left; list-style:none outside none;"); 
    1133     iconItem.setAttribute("style", "float:left; list-style:none outside none;"); 
    1134      
    1135     var newLink = document.createElement("A"); 
    1136     newLink.setAttribute("href", "javascript:;"); 
    1137     newLink.onclick = function() 
    1138     { 
    1139         if(metaTable.style.display == "none") 
    1140         { 
    1141             linkLabel.innerHTML = "hide metadata"; 
    1142             linkIcon.setAttribute("class", "ui-icon ui-icon-folder-open"); 
    1143             metaTable.style.display = "block"; 
    1144             metaTable.metaNameField.style.display = "inline"; 
    1145             metaTable.addRowButton.style.display = "inline"; 
     1058     
     1059    var uList = $("<ul>", {"style": "outline: 0 none; margin:0px; padding:0px;"}); 
     1060    var labelItem = $("<li>", {"style": "float:left; list-style:none outside none;"}); 
     1061    var iconItem = $("<li>", {"style": "float:left; list-style:none outside none;"}); 
     1062 
     1063    uList.append(iconItem); 
     1064    uList.append(labelItem); 
     1065    labelItem.append(linkLabel); 
     1066    iconItem.append(linkIcon); 
     1067     
     1068    var newLink = $("<a>", {"href": "javascript:;"}); 
     1069    newLink.click(function() 
     1070    { 
     1071        if(metaTable.css("display") == "none") 
     1072        { 
     1073            linkLabel.html("hide metadata"); 
     1074            linkIcon.attr("class", "ui-icon ui-icon-folder-open"); 
     1075            metaTable.css("display", "block"); 
     1076            metaTable.metaNameField.css("display", "inline"); 
     1077            metaTable.addRowButton.css("display", "inline"); 
    11461078        } 
    11471079        else 
    11481080        { 
    1149             linkLabel.innerHTML = "edit metadata"; 
    1150             linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 
    1151             metaTable.style.display = "none"; 
    1152             metaTable.metaNameField.style.display = "none"; 
    1153             metaTable.addRowButton.style.display = "none"; 
    1154         } 
    1155     } 
    1156     newLink.appendChild(uList); 
    1157     linkSpan.appendChild(newLink); 
    1158     newCell.appendChild(linkSpan); 
    1159     row.appendChild(newCell); 
     1081            linkLabel.html("edit metadata"); 
     1082            linkIcon.attr("class", "ui-icon ui-icon-folder-collapsed"); 
     1083            metaTable.css("display", "none"); 
     1084            metaTable.metaNameField.css("display", "none"); 
     1085            metaTable.addRowButton.css("display", "none"); 
     1086        } 
     1087    }); 
     1088 
     1089    newLink.append(uList); 
     1090    linkSpan.append(newLink); 
     1091    newCell.append(linkSpan); 
     1092    row.append(newCell); 
    11601093     
    11611094    addFunctionalityToTable(metaTable); 
    1162     metaTable.metaNameField.style.display = "none"; 
    1163     metaTable.addRowButton.style.display = "none"; 
     1095    metaTable.metaNameField.css("display", "none"); 
     1096    metaTable.addRowButton.css("display", "none"); 
    11641097} 
    11651098 
     
    11681101    if(visible) 
    11691102    { 
    1170         document.getElementById("editContentButton").innerHTML = "Hide editor"; 
     1103        $("#editContentButton").html("Hide editor"); 
    11711104    } 
    11721105    else 
    11731106    { 
    1174         document.getElementById("editContentButton").innerHTML = "Edit content"; 
    1175     } 
    1176  
    1177     var saveButton = document.getElementById("saveButton"); 
    1178     var metadataListLabel = document.getElementById("metadataListLabel"); 
    1179     var metadataList = document.getElementById("metadataSetList"); 
     1107        $("#editContentButton").html("Edit content"); 
     1108    } 
    11801109     
    11811110    var visibility = (visible ? "" : "none"); 
    1182     saveButton.style.display = visibility; 
    1183     metadataListLabel.style.display = visibility; 
    1184     metadataList.style.display = visibility; 
    1185      
    1186     var buttons = gs.functions.getElementsByClassName("editMetadataButton"); 
    1187      
    1188     for(var i = 0; i < buttons.length; i++) 
    1189     { 
    1190         buttons[i].style.display = visibility; 
    1191         buttons[i].linkLabel.innerHTML = "edit metadata"; 
    1192         buttons[i].linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 
    1193     } 
    1194      
    1195     var tables = document.getElementsByTagName("TABLE"); 
    1196     for(var i = 0; i < tables.length; i++) 
    1197     { 
    1198         var currentTable = tables[i]; 
    1199         if(currentTable.getAttribute("id") && currentTable.getAttribute("id").search(/^meta/) != -1) 
    1200         { 
    1201             currentTable.style.display = "none"; 
    1202             currentTable.metaNameField.style.display = "none"; 
    1203             currentTable.addRowButton.style.display = "none"; 
    1204         } 
    1205     } 
     1111    $("#saveButton, #metadataListLabel, #metadataSetList").css("display", visibility); 
     1112     
     1113    $(".editMetadataButton").each(function() 
     1114    { 
     1115        $(this).css("display", visibility); 
     1116        $(this.linkLabel).html("edit metadata"); 
     1117        $(this.linkIcon).attr("class", "ui-icon ui-icon-folder-collapsed"); 
     1118    }); 
     1119     
     1120    $("table").each(function() 
     1121    { 
     1122        if($(this).attr("id") && $(this).attr("id").search(/^meta/) != -1) 
     1123        { 
     1124            $(this).css("display", "none"); 
     1125            $(this.metaNameField).css("display", "none"); 
     1126            $(this.addRowButton).css("display", "none"); 
     1127        } 
     1128    }); 
    12061129} 
    12071130 
    12081131function readyPageForEditing() 
    12091132{ 
    1210     if(document.getElementById("metadataSetList")) 
    1211     { 
    1212         var setList = document.getElementById("metadataSetList"); 
    1213         if(!setList.style.display || setList.style.display == "") 
     1133    if($("#metadataSetList").length) 
     1134    { 
     1135        var setList = $("#metadataSetList"); 
     1136        if(!setList.css("display") || setList.css("display") == "") 
    12141137        { 
    12151138            setEditingFeaturesVisible(false); 
     
    12221145    } 
    12231146 
    1224     document.getElementById("editContentButton").innerHTML = "Hide Editor"; 
    1225      
    1226     var textDivs = gs.functions.getElementsByClassName("sectionText"); 
    1227     for(var i = 0; i < textDivs.length; i++) 
    1228     { 
    1229         de.doc.registerEditSection(textDivs[i]); 
    1230     } 
    1231      
    1232     var editBar = document.getElementById("editBarLeft"); 
    1233     var saveButton = document.createElement("BUTTON"); 
    1234     saveButton.onclick = save; 
    1235     saveButton.innerHTML = "Save changes"; 
    1236     saveButton.setAttribute("id", "saveButton"); 
    1237     editBar.appendChild(saveButton); 
    1238      
    1239     var visibleMetadataList = document.createElement("SELECT"); 
    1240     var allOption = document.createElement("OPTION"); 
    1241     allOption.innerHTML = "All"; 
    1242     visibleMetadataList.appendChild(allOption); 
    1243     visibleMetadataList.setAttribute("id", "metadataSetList"); 
    1244     var metadataListLabel = document.createElement("SPAN"); 
    1245     metadataListLabel.setAttribute("id", "metadataListLabel"); 
    1246     metadataListLabel.setAttribute("style", "margin-left:20px;"); 
    1247     metadataListLabel.innerHTML = "Visible metadata: "; 
    1248     editBar.appendChild(metadataListLabel); 
    1249     editBar.appendChild(visibleMetadataList); 
    1250     visibleMetadataList.onchange = onVisibleMetadataSetChange; 
    1251      
    1252     var statusBarDiv = document.createElement("DIV"); 
    1253     editBar.appendChild(statusBarDiv); 
    1254     _statusBar = new StatusBar(statusBarDiv); 
    1255      
    1256     var titleDivs = gs.functions.getElementsByClassName("sectionTitle"); 
     1147    $("#editContentButton").html("Hide Editor"); 
     1148     
     1149    var textDivs = $(".sectionText").each(function(){de.doc.registerEditSection(this);}); 
     1150     
     1151    var editBar = $("#editBarLeft"); 
     1152    var saveButton = $("<button>", {"id": "saveButton"}); 
     1153    saveButton.click(save); 
     1154    saveButton.html("Save changes"); 
     1155    editBar.append(saveButton); 
     1156     
     1157    var visibleMetadataList = $("<select>", {"id": "metadataSetList"}); 
     1158    var allOption = $("<option>All</option>"); 
     1159    visibleMetadataList.append(allOption); 
     1160 
     1161    var metadataListLabel = $("<span>", {"id": "metadataListLabel", "style": "margin-left:20px;"}); 
     1162    metadataListLabel.html("Visible metadata: "); 
     1163    editBar.append(metadataListLabel); 
     1164    editBar.append(visibleMetadataList); 
     1165    visibleMetadataList.change(onVisibleMetadataSetChange); 
     1166     
     1167    var statusBarDiv = $("<div>"); 
     1168    editBar.append(statusBarDiv); 
     1169    _statusBar = new StatusBar(statusBarDiv[0]); 
     1170     
     1171    var titleDivs = $(".sectionTitle"); 
    12571172    for(var i = 0; i < titleDivs.length; i++) 
    12581173    { 
     
    12621177    _baseURL = gs.xsltParams.library_name; 
    12631178} 
     1179 
     1180/*************** 
     1181* MENU SCRIPTS * 
     1182***************/ 
    12641183 
    12651184function floatMenu(enabled) 
     
    13001219    } 
    13011220     
    1302     var ajax = gs.functions.ajaxRequest(); 
    1303     ajax.open("GET", gs.xsltParams.library_name + "?a=d&ftoc=" + (enabled ? "1" : "0") + "&c=" + gs.cgiParams.c); 
    1304     ajax.send(); 
    1305 } 
     1221    var url = gs.xsltParams.library_name + "?a=d&ftoc=" + (enabled ? "1" : "0") + "&c=" + gs.cgiParams.c; 
     1222     
     1223    $.ajax(url); 
     1224} 
     1225 
     1226/******************** 
     1227* SLIDESHOW SCRIPTS * 
     1228********************/ 
    13061229 
    13071230function showSlideShow() 
  • main/trunk/greenstone3/web/interfaces/default/js/documentmaker_scripts_util.js

    r25546 r26397  
    631631function addFunctionalityToTable(table) 
    632632{ 
    633     var rows = table.getElementsByTagName("TR"); 
    634     for(var i = 0; i < rows.length; i++) 
    635     { 
    636         var cells = rows[i].getElementsByTagName("TD"); 
    637         var metadataName = cells[0].innerHTML; 
     633    table.find("tr").each(function() 
     634    { 
     635        var cells = $(this).find("td"); 
     636        var metadataName = $(cells[0]).html(); 
    638637         
    639638        if(metadataName.indexOf(".") != -1) 
     
    655654                _metadataSetList.push(metadataSetName); 
    656655                 
    657                 var metadataSetList = document.getElementById("metadataSetList"); 
    658                 var newOption = document.createElement("OPTION"); 
    659                 newOption.innerHTML = metadataSetName; 
    660                 metadataSetList.appendChild(newOption); 
     656                var metadataSetList = $("#metadataSetList"); 
     657                var newOption = $("<option>"); 
     658                newOption.html(metadataSetName); 
     659                metadataSetList.append(newOption); 
    661660            } 
    662661        } 
    663662             
    664663        asyncRegisterEditSection(cells[1]); 
    665  
    666         addRemoveLinkToRow(rows[i]); 
    667     } 
    668  
    669     var metaNameField = document.createElement("INPUT"); 
    670     metaNameField.setAttribute("type", "text"); 
    671     insertAfter(metaNameField, table); 
     664        addRemoveLinkToRow(this); 
     665    }); 
     666 
     667    var metaNameField = $("<input>", {"type": "text"}); 
     668    table.after(metaNameField); 
    672669    table.metaNameField = metaNameField; 
    673670     
    674     var addRowButton = document.createElement("BUTTON"); 
    675     addRowButton.innerHTML = gs.text.dse.add_new_metadata; 
    676     addRowButton.onclick = function()  
     671    var addRowButton = $("<button>"); 
     672    addRowButton.html(gs.text.dse.add_new_metadata); 
     673    addRowButton.click(function()  
    677674    {  
    678         var name = metaNameField.value; 
     675        var name = metaNameField.val(); 
    679676        if(!name || name == "") 
    680677        { 
     
    683680        } 
    684681         
    685         var newRow = document.createElement("TR"); 
    686         var nameCell = document.createElement("TD"); 
    687         var valueCell = document.createElement("TD"); 
    688         nameCell.setAttribute("class", "metaTableCellName"); 
    689         nameCell.innerHTML = name; 
    690         valueCell.setAttribute("class", "metaTableCell"); 
    691          
    692         newRow.appendChild(nameCell); 
    693         newRow.appendChild(valueCell); 
     682        var newRow = $("<tr>"); 
     683        var nameCell = $("<td>" + name + "</td>"); 
     684        nameCell.attr("class", "metaTableCellName"); 
     685        var valueCell = $("<td>", {"class": "metaTableCell"}); 
     686         
     687        newRow.append(nameCell); 
     688        newRow.append(valueCell); 
    694689        addRemoveLinkToRow(newRow); 
    695         table.appendChild(newRow); 
     690        table.append(newRow); 
    696691         
    697692        var undo = new Array(); 
     
    702697         
    703698        //Threading this function here probably isn't necessary like the other times it is called 
    704         de.doc.registerEditSection(valueCell); 
    705     }; 
     699        de.doc.registerEditSection(valueCell[0]); 
     700    }); 
    706701    table.addRowButton = addRowButton; 
    707     insertAfter(addRowButton, metaNameField); 
     702    metaNameField.after(addRowButton); 
    708703} 
    709704 
    710705function addRemoveLinkToRow(row) 
    711706{ 
    712     var newCell = document.createElement("TD"); 
    713     var removeLink = document.createElement("A"); 
    714     removeLink.innerHTML = "remove"; 
    715     removeLink.setAttribute("href", "javascript:;"); 
    716     removeLink.onclick = function() 
     707    var newCell = $("<td>"); 
     708    var removeLink = $("<a>remove</a>", {"href": "javascript:;"}); 
     709    removeLink.click(function() 
    717710    { 
    718711        var undo = new Array(); 
     
    723716        _undoOperations.push(undo); 
    724717        _deletedMetadata.push(row); 
    725         row.style.display = "none"; 
    726     } 
    727     newCell.appendChild(removeLink); 
    728     newCell.setAttribute("class", "metaTableCell"); 
    729     newCell.setAttribute("style", "font-size:0.6em; padding-left: 3px; padding-right: 3px;"); 
    730     row.appendChild(newCell); 
     718        row.css("display", "none"); 
     719    }); 
     720    newCell.append(removeLink); 
     721    newCell.attr({"class": "metaTableCell", "style": "font-size:0.6em; padding-left: 3px; padding-right: 3px;"}); 
     722    $(row).append(newCell); 
    731723} 
    732724