function get_reviews(docid, metacatUrl) { if (docid != null && docid != '') { new Ajax.Request( metacatUrl + "?action=read&docid=" + docid, {asynchronous:true, evalScripts:true, method:'post', onLoading:function(request){Element.show('busy')}, onComplete: render_reviews}); } } function render_reviews(request) { //alert(request.responseText); var reviews = request.responseXML.getElementsByTagName("review"); var div_panel; // for each review... for (var i=0; i title_max_length) { // abbreviate the title packageId_string = packageId_string.substring(0, title_max_length-3) + "..."; } else { // try to squeeze in the blurb blurb_length = Math.floor((title_max_length - title_length) * (blurb_max_length / title_max_length)); if (text_string.length > blurb_length) { // abbreviate the blurb if (blurb_length > 3) { blurb_length -= 3; suffix = "..."; } else { suffix = ""; } blurb_string = text_string.substring(0, blurb_length) + suffix; } } var packageId = document.createTextNode(packageId_string); var blurb = document.createTextNode(blurb_string); var div_header = document.createElement("div"); var span_blurb = document.createElement("span"); var div_content = document.createElement("div"); var p_tstamp = document.createElement("p"); var p_action = document.createElement("p"); var p_text = document.createElement("p"); div_header.appendChild(packageId); span_blurb.appendChild(blurb); div_header.appendChild(span_blurb); p_tstamp.appendChild(datetime); p_action.appendChild(action); p_text.appendChild(text); div_content.appendChild(p_tstamp); div_content.appendChild(p_action); div_content.appendChild(p_text); div_panel.setAttribute("id", panelName); div_header.setAttribute("id", panelName + "Header"); div_header.setAttribute("class", "tabtitle"); div_content.setAttribute("id", panelName + "Content"); span_blurb.setAttribute("id", panelName + "Blurb"); span_blurb.setAttribute("class", "review_blurb"); div_content.setAttribute("class", "accordionTabContentBox"); p_tstamp.setAttribute("class", "review_tstamp"); p_action.setAttribute("class", "review_action"); p_text.setAttribute("class", "review_text"); div_header.setAttribute("className", "tabtitle"); span_blurb.setAttribute("className", "review_blurb"); div_content.setAttribute("className", "accordionTabContentBox"); p_tstamp.setAttribute("className", "review_tstamp"); p_action.setAttribute("className", "review_action"); p_text.setAttribute("className", "review_text"); div_panel.appendChild(div_header); div_panel.appendChild(div_content); document.getElementById("review_list").appendChild(div_panel); } var which_tab = 0; Element.hide("panel" + (which_tab+1) + "Blurb"); var accordion = new Rico.Accordion('review_list', { borderColor:"#ddd", expandedBg:"#DEF1F1", expandedTextColor:"#000", collapsedBg:"#A3DADA", collapsedTextColor:"#444", hoverBg:"#DEF1F1", hoverTextColor:"#222", panelHeight:150, onLoadShowTab:which_tab }); // could have used onShowTab/onHideTab but this has a better effect accordion.clickBeforeActions.push(show_current_blurb); accordion.clickAfterActions.push(hide_current_blurb); // not busy anymore setTimeout("Element.hide('busy')", 1000); } // for accordion function get_current_panel(tab) { var panelName = tab.accordion.lastExpandedTab.titleBar.id; return panelName.substring(0, panelName.indexOf("Header")); } // for accordion function show_current_blurb(tab) { Element.show(get_current_panel(tab) + "Blurb"); } // for accordion function hide_current_blurb(tab) { Element.hide(get_current_panel(tab) + "Blurb"); } function getText(elem, tag) { var node = elem.getElementsByTagName(tag)[0]; if (node != null && node.firstChild != null) { return elem.getElementsByTagName(tag)[0].firstChild.nodeValue.trim(); } return ""; } function expand_detail(rid) { id = "review_" + rid; Element.hide(id + '_show'); Element.hide(id + '_blurb'); Element.show(id + '_hide'); new Effect.BlindDown(id + "_detail", {duration:0.3}) } function hide_detail(rid) { id = "review_" + rid; new Effect.BlindUp(id + "_detail", {duration:0.3}) Element.hide(id + '_hide'); Element.show(id + '_show'); Element.show(id + '_blurb'); //setTimeout("Element.show(id + '_show'); Element.show(id + '_blurb')", 250) }