function gengo_language_remove(id) { $('gengo_available_languages').appendChild(document.getElementById('gengo_language_' + id)); $('gengo_control_set_' + id).innerHTML = '' + add_message + ''; return false; } function gengo_language_add(id) { var node = document.getElementById('gengo_language_' + id) $('gengo_viewing_languages').appendChild(node); $('gengo_control_set_' + id).innerHTML = '' + up_message + ' ' + down_message + ' ' + x_message + ''; return false; } // gengo_create_cookie modified from code found at quirksmode.org function gengo_create_cookie(name, value) { var date = new Date(); date.setTime(date.getTime() + 30000000); var expires = "; expires=" + date.toGMTString(); document.cookie = name + "=" + value + expires + "; path=" + cookie_path; } function gengo_language_save() { var nodes = $('gengo_viewing_languages').childNodes; var code_string = ''; var relocation_string = ''; for (var i = 0; i < nodes.length; i++) { if (nodes[i].tagName == 'LI') { var id = nodes[i].id.substr('gengo_language_'.length); if (code_string != '') code_string += encoded_divider; if (relocation_string != '') relocation_string += language_divider; code_string += language_codes[id]; relocation_string += language_codes[id]; } } if ('' == code_string) { alert(save_error_message); } else { gengo_create_cookie(cookie_name, code_string); window.location = site_home + '/' + relocation_string + '/'; } return false; } function gengo_language_reset() { var viewable_codes = original_codes.split(language_divider); var other_codes = viewable_codes.diff(language_codes); var language_id; for (var i = 0; i < viewable_codes.length; i++) { language_id = language_ids[viewable_codes[i]]; gengo_language_add(language_id); } for (var i = 0; i < other_codes.length; i++) { language_id = language_ids[other_codes[i]]; gengo_language_remove(language_id); } return false; } function gengo_switch_summary(summary_id) { if (current_id == summary_id) return false; $('gengo_summary_' + current_id).style.display = 'none'; $('gengo_summary_' + summary_id).style.display = 'block'; current_id = summary_id; } // From: http://www.mozilla.org/docs/dom/technote/whitespace/ function is_all_ws(nod) { return !(/[^\t\n\r ]/.test(nod.data)); } function is_ignorable(nod) { return (nod.nodeType == 8) || ((nod.nodeType == 3) && is_all_ws(nod)); } function findPrevNode(node) { while ((node = node.previousSibling)) { if (!is_ignorable(node)) return node; } return null; } function findNextNode(node) { while ((node = node.nextSibling)) { if (!is_ignorable(node)) return node; } return null; } // from: http://www.xs4all.nl/~zanstra/logs/jsLog.htm function DOMNode_swapNode(n1,n2) { n1.parentNode.insertBefore(n2.parentNode.removeChild(n2),n1); } function gengo_language_move_up(id) { var node = $('gengo_language_' + id); var previous_node = findPrevNode(node); if (previous_node) { DOMNode_swapNode(previous_node, node); } return false; } function gengo_language_move_down(id) { var node = $('gengo_language_' + id); var next_node = findNextNode(node); if (next_node) { DOMNode_swapNode(node, next_node); } return false; }