function clearTextfield(name) { setValue(name,''); focusText(ID(name)); } function focusText(id, newclass) { if (id.value == id.placeholder) { id.value = ''; if (id.placeholder == 'Password') id.type = 'Password'; } if (id.value == '' && newclass) id.className = newclass;//'TextFont8'; id.focus(); id.select(); } function blurText(id) { if (id.value == '') { id.type = 'text'; id.value = id.placeholder; } if (id.value == id.placeholder) id.className = 'GhostFont8'; } function changedCheckfield(id) { var checklist = getInputValue('CheckList'); setIDClass('AddToLibrary,MoveDeleteItems,MoveItems,DeleteItems,EditDescriptionNotes', (checklist == '') ? 'RemoveHighlight' : 'Highlight'); setTintClass(id.getAttribute('value')); } function clearChecklist() { var checklist = getInputValue('CheckList'); unCheck(checklist); setIDClass(checklist, 'RemoveHighlight'); setIDClass('AddToLibrary,MoveDeleteItems,MoveItems,DeleteItems,EditDescriptionNotes','RemoveHighlight'); return true; } function tintChecked() { var arr = checkfieldArray('CheckList'); for (var j=0; j < arr.length; j++) setTintClass(arr[j]); } function setTintClass(name) { var base = reReplace(ID(name).className, 'Highlight'); setIDClass(name, isChecked(name) ? base+'Highlight' : base); } function validateForm(form) { for (var j=0; j < form.elements.length; j++) if (form.elements[j].id && form.elements[j].validname && !validateField(form.elements[j].id)) return !focusField(form.elements[j].id); return true; } function validateFieldList(field_list) { var arr = field_list.split(','); for (var k = 0; k < arr.length; k++) if (!validateField(arr[k])) return !focusField(arr[k]); return true; } function validateField(name) { var validname = getVal(name,'validname'); var validregexp = getVal(name,'validregexp'); var value = getInputValue(name); if (validname == '') return true; else if (validregexp == '' && value == '' || validregexp != '' && !reMatch(value, '^'+validregexp+'$')) return falseAlert('Requires ' + validname); else return true; } function processLibnotesText(text) { text = '\r\n' + text + '\r\n'; text = reReplace(text, '(\r\n[A-Za-z0-9_-]+[:][\r\n\s]*)+\r\n($|[A-Za-z0-9_-]+:)', '\r\n$2'); text = reReplace(text, '\r\n([A-Za-z0-9_-]+):', '
[$1]<\/b>'); text = textToHTML(text); text = reReplace(text, '{(Publication|Author|Library)=([A-Za-z0-9_?=&,-]+)[ ]([^}]{0,50})}', "$3<\/a>"); text = reReplace(text, "{PDF=([A-Za-z0-9_-]{3,})(@(pages=[0-9]+))?[ ]([^}]{0,50})}", "$4<\/b><\/a>"); text = trim(text); return text; } function refreshUserRevText(id) { showTextHTML(id, textToHTML); } ///maybe UserRev should use same replacements as library, totally merge functions function refreshPreviewText(id) { showTextHTML(id, processLibnotesText); } function showTextHTML(id, processfunct, target) { if (processfunct == null) processfunct = textToHTML; if (target == null) target = 'PreviewText'; var result = processfunct(getValue(id.name)); //if (result != '') // alert(result); setHTML(target, result); } function setCurrentTab(id) { if (id == null) return false; var sib_arr = id.parentNode.childNodes; for (var k = 0; k < sib_arr.length; k++) if (sib_arr[k].className == 'TAB_Selected') setClassValue(sib_arr[k],'TAB_Normal'); setClassValue(id,'TAB_Selected'); } function showStatus(xstring) { window.status = xstring; //window.alert(xstring); return true; } function developerMode() { return !contains(document.URL,'www.unz.org'); } function iffAdmin() { return getHTML('CurrentSecurityShown') == 'Administrator'; } function changePushField(id, action) { if (action == null) action = 'toggle'; var push_name = id.getAttribute('pname'); var sib_arr = id.parentNode.childNodes; if (action == 'switch') { for (var k = 0; k < sib_arr.length; k++) if (sib_arr[k].className == 'TAB_Selected') setClassValue(sib_arr[k], 'TAB_Normal'); setClassValue(id, 'TAB_Selected'); } else setClassValue(id, id.className == 'TAB_Selected' ? 'TAB_Normal' : 'TAB_Selected'); var result = new Array(); for (var j = 0; j < sib_arr.length; j++) if (sib_arr[j].className == 'TAB_Selected') result.push(sib_arr[j].getAttribute('value')); setValue(push_name, result.toString()); updateSetting(push_name); } function contains(str, substring) { return str.indexOf(substring) != -1; } function iffContains(str, substring, resultstring, elsestring) { if (elsestring == null) elsestring = ''; return (str.indexOf(substring) != -1) ? resultstring : elsestring; } function browserUsed() { if (/firefox/.test(navigator.userAgent.toLowerCase())) return 'Firefox'; else if (/chrome/.test(navigator.userAgent.toLowerCase())) return 'Chrome'; else if (/apple/.test(navigator.userAgent.toLowerCase())) return 'Safari'; /// maybe shouldn't use userAgent for Apple else return 'Explorer'; } function operatingSystem() { var agentstring = navigator.userAgent; if (contains(agentstring,'Win')) return 'Win'; else if (contains(agentstring,'Mac')) return 'Mac'; else if (contains(agentstring,'X11')) return 'Unix'; else return 'Unknown'; } function is_iPad() { return contains(navigator.userAgent.toLowerCase(),'ipad'); } function windowSize() { if (browserUsed() == 'Explorer') return { width: document.body.clientWidth, height: document.body.clientHeight }; else return { width: window.innerWidth, height: window.innerHeight }; } function resizeWindowBy(width, height) { window.resizeBy(width,height); } function resizeWindowTo(width, height) { window.resizeTo(width,height); } function windowScroll() { var scrollX = 0, scrollY = 0; if (document.body && typeof document.body.scrollTop != 'undefined') { scrollX += document.body.scrollLeft; scrollY += document.body.scrollTop; if (document.body.parentNode && typeof document.body.parentNode.scrollTop != 'undefined' && (document.body.scrollTop != document.body.parentNode.scrollTop)) { scrollX += document.body.parentNode.scrollLeft; scrollY += document.body.parentNode.scrollTop; } } else if (typeof window.pageXOffset != 'undefined') { scrollX += window.pageXOffset; scrollY += window.pageYOffset; } return { scrollX: scrollX, scrollY: scrollY }; } function elemSize(name) { return { width: ID(name).offsetWidth, height: ID(name).offsetHeight }; } function elemPosition(name) { var offsetTrail = ID(name); var offsetLeft = 0, offsetTop = 0; while (offsetTrail) { offsetLeft += offsetTrail.offsetLeft; offsetTop += offsetTrail.offsetTop; offsetTrail = offsetTrail.offsetParent; } return { left: offsetLeft, top: offsetTop }; } function shiftBy(name, downward, rightward) { var pop = ID(name); pop.style.top = parseInt(reReplace(pop.style.top,'px')) + downward; pop.style.left = parseInt(reReplace(pop.style.left,'px')) + rightward; } function moveTo(name, top, left) { ID(name).style.top = top; ID(name).style.left = left; } function moveDownwards(name) { var wsize = windowSize(); var wscroll = windowScroll(); var esize = elemSize(name); var epos = elemPosition(name); if (epos.top + esize.height + 50 < wsize.height + wscroll.scrollY) shiftBy(name, 15, 0); } function keepOnscreen(name, top0, left0, within) { if (top0 == null) top0 = 150; if (left0 == null) left0 = 150; var epos = elemPosition(name); if (epos.left == 0 && epos.top == 0) return; var wsize = windowSize(); var wscroll = windowScroll(); var esize = elemSize(name); if (epos.top + esize.height > wsize.height + wscroll.scrollY || epos.top < wscroll.scrollY || within && Math.abs(wscroll.scrollY-epos.top) > within) moveTo(name, wscroll.scrollY + top0, wscroll.scrollX + left0); } function resizeFrame(name, change) { var result = parseInt(getVal(name,'width')) + change; setVal(name,'width', result); updateSetting('WFrameWidth',result+''); } function resizeBook(name, change) { var result = getClass(name); var newclass = 'Book' + Math.min(9, Math.max(1, parseInt(result.charAt(4)) + change)); setClass(name,newclass); updateSetting('BookClass',result+''); } function getCookieValue(name, item) { return extractItem(getCookie(name),item,'~'); } function updateSetting(name, value) { if (value == null) value = getInputValue(name); updateCookie(name+'='+value); return true; } function updateCookie(updatestring) { var datastring = getCookie(); //alert('Was: '+datastring); alert('Updating: ' + updatestring); datastring = updateItems(datastring, updatestring,'~'); //alert('Becomes: '+datastring); setCookie(datastring); } function setCookie(value,name) { if (name == null) name = 'UnzSettings'; document.cookie = name + '=' + encodeURIComponent(value) + '; path=/'; } function getCookie(name) { if (name == null) name = 'UnzSettings'; value = extractItem(document.cookie,name,';'); return decodeURIComponent(value); } function extractItem(datastring, item, separator) { if (separator == null) separator = ','; var start = datastring.indexOf(item+'='); if (start == -1) return ''; start += item.length + 1; var end = datastring.indexOf(separator, start); if (end == -1) end = datastring.length; return datastring.substring(start,end); } function updateItems(datastring, updatestring, separator) { if (separator == null) separator = ','; if (updatestring == '') return datastring; //alert(datastring); var unit = ''; var updates = updatestring.split(separator); for (var i = 0; i < updates.length; i++) { unit = updates[i].split('='); if (unit[1] == '') datastring = replaceItem(datastring, unit[0], null, separator); else datastring = updateItem(datastring, unit[0], unit[1], separator); } return datastring; } function updateItem(datastring, item, value, separator) { if (separator == null) separator = ','; if (datastring == '') return item + '=' + value; else if (!contains(datastring, item+'=')) return datastring + separator + item + '=' + value; else return replaceItem(datastring, item, value, separator); } function replaceItem(datastring, item, value, separator) {if (separator == null) separator = ','; if (value == null) value = ''; else value = '$1'+item+'='+value; return reReplace(datastring, '(^|'+separator+')'+item+'='+'[^'+separator+']*', value); } function falseAlert(text) { if (text == null) text = 'Here'; alert(text); return false; } function parentalForm(id) { while (id) if (isSameString(id.tagName,'form')) return id; else id = id.parentNode; return null; } function pausecomp(mseconds) { /// CPU goes to 100% var date = new Date(); var curDate = null; do { curDate = new Date(); } while (curDate-date < mseconds); } function cycleButton(id) { var item = ID(id); var list = item.title; var arr = list.split(','); for (var k = 0; k < arr.length; k++) if (item.value == arr[k]) { item.value = (k == arr.length-1) ? arr[0] : arr[k+1]; break; } setValue('Hidden'+id, item.value.replace(/ /g,'')); } function setContainedLinks(list, status) { var top_arr = list.split(','); for (var j = 0; j < top_arr.length; j++) if (ID(top_arr[j])) { var arr = ID(top_arr[j]).getElementsByTagName('a'); for (var k = 0; k < arr.length; k++) { arr[k].style.color = (status == 'Off') ? 'black' : 'blue'; arr[k].setAttribute('onclick', (status == 'Off') ? 'return false;' : 'return true;'); } } } function setLinks(list, status) { var arr = list.split(','); for (var k = 0; k < arr.length; k++) if (ID(arr[k])) { ID(arr[k]).style.color = (status == 'Off') ? 'black' : 'blue'; ID(arr[k]).setAttribute('onclick', (status == 'Off') ? 'return false;' : 'return true;'); } } function getInputValue(name) { if (ID(name)); else if (ID(name+'[]')) name = name+'[]'; else if (document.getElementsByName(name+'[]').length) return checkfieldArray(name+'[]').join(); else return ''; var elem = ID(name); var type = elem.type; if (type == 'radio') return radioValue(name); else if (type == 'select' || type == 'select-one') return listValue(name); else if (type == 'checkbox') return checkfieldArray(name).join(); else if (type == 'text' || type == 'password') return textValue(name); else return getValue(name); } function checkfieldArray(name) { if (!contains(name,'[]')) name = name+'[]'; var result = new Array(); var arr = document.getElementsByName(name); for (var j=0; j < arr.length; j++) if (arr[j].type == 'checkbox' && arr[j].checked || arr[j].type == 'hidden') { result.push(arr[j].value); } return result; } function isChecked(value) { var arr = document.getElementsByTagName('input'); for (var j=0; j < arr.length; j++) if (arr[j].type == 'checkbox' && arr[j].value == value) return arr[j].checked; return 0; } function unCheck(checklist) { if (checklist == '') return false; var arr = document.getElementsByTagName('input'); for (var j=0; j < arr.length; j++) if (arr[j].type == 'checkbox' && listHas(checklist,arr[j].value)) arr[j].checked = false; return true; } function textValue(name) { return ID(name).value; } function listValue(name) { return ID(name).options[ID(name).selectedIndex].value; } function setListValue(name, value) { var arr = ID(name).options; for (var k=0; k < arr.length; k++) if (arr[k].value == value) ID(name).selectedIndex = k; } function radioValue(name) { var arr = document.getElementsByName(name); for (var j=0; j < arr.length; j++) if (arr[j].checked) return arr[j].value; } function setOver(id) { setClassValue(id,'PubItemOver'); } function unsetOver(id) { setClassValue(id,'PubItem'); } function setDisplayList(show_list, hide_list) { setDisplay(hide_list,0); setDisplay(show_list); return true; } function setDisplay(id_list, value) { if (value == null) value = 1; if (value == 'none' || value == 'NoDisplay' || !value) value = 'NoDisplay'; else value = ''; setIDClass(id_list,value); } function setTagClass(tag, name_list, value) { var arr = document.getElementsByTagName(tag); for (var k = 0; k < arr.length; k++) if (listHas(name_list,arr[k].getAttribute('name'))) setClassValue(arr[k], value); } function setIDClass(id_list, value) { var arr = id_list.split(','); for (var k = 0; k < arr.length; k++) setClassValue(ID(arr[k]), value); } function setClassValue(id, value) { if (id == null) return false; if (contains(id.className,'Frozen') && contains(value,'Highlight')); else if (value == 'RemoveHighlight') value = reReplace(id.className,'Highlight'); else if (value == 'Highlight') value = id.className + iffContains(id.className,'Highlight','','Highlight'); if (browserUsed() == 'Explorer') id.className = value; else id.setAttribute('class',value); } function getClass(name) { if (browserUsed() == 'Explorer') return getVal(name,'className'); else return getVal(name,'class'); } function setClass(name, value) { var id = ID(name); if (!id) return ''; else if (browserUsed() == 'Explorer') id.className = value; else id.setAttribute('class',value); } function getValue(name) { var id = ID(name); if (!id) return ''; else return id.getAttribute('value'); } function reReplaceVal(name, val_name, from_str, to_str) { var value = getVal(name, val_name); setVal(name, val_name, reReplace(value, from_str, to_str)); } function setValue(name,value) { var id = ID(name); if (id) id.setAttribute('value',value); } function getVal(name,val_name) { var id = ID(name); if (!id) return ''; else return coalesce(id.getAttribute(val_name),''); } function setVal(name,val_name,value) { var id = ID(name); if (id) id.setAttribute(val_name,value); } function setVals(name,val_list) { var arr = val_list.split(','); for (var j = 0; j < arr.length; j++) setVal(name, listFirst(arr[j],'='), listRest(arr[j],'=')); } function getValArray(name, val_name_list, type) { var result = { }; var id = ID(name); if (!id) return result; var arr = val_name_list.split(','); for (var k = 0; k < arr.length; k++) { if (type == 'int') result[arr[k]] = id.getAttribute(arr[k]) ? parseInt(id.getAttribute(arr[k])) : 0; else if (type == 'float') result[arr[k]] = id.getAttribute(arr[k]) ? parseFloat(id.getAttribute(arr[k])) : 0; else result[arr[k]] = coalesce(id.getAttribute(arr[k]),''); } return result; } function setHTML(id_list,value) { var arr = id_list.split(','); for (var k = 0; k < arr.length; k++) if (ID(arr[k])) ID(arr[k]).innerHTML = value; } function getHTML(name,value) { var id = ID(name); if (id) return id.innerHTML; else return '';} function setDimensions(name, width, height) { var id = ID(name); if (id) { if (width) id.setAttribute('width', width); if (height) id.setAttribute('height', height); } } function changeDimensions(name, width, height) { var id = ID(name); if (id) { if (width) id.setAttribute('width', parseInt(id.getAttribute('width'))+width); if (height) id.setAttribute('height', parseInt(id.getAttribute('height'))+height); } } function buttonID(value) { var arr = document.getElementsByName('Action'); value = splitByUpper(value); for (var j=0; j < arr.length; j++) if (arr[j].value == value) return arr[j]; return 0; } function focusField(name) { var id = ID(name); if (id) { id.focus(); id.select(); } return true; } function ID(id) { return document.getElementById(id); } var popTimer = null; var infoWin = null; function attachInspector(id, url, features, delay) { item = ID(id); if (!item) return; item.onmouseover = function(ev) { if (getValue('Inspector') == 'DisableInspector') popTimer=window.setTimeout("infoWin=window.open('"+url+"','infoWin','"+features+"')",1000*delay); } item.onmouseout = function(ev) { window.clearTimeout(popTimer); if (infoWin) infoWin.close(); }} function childrenIdArray(name) { var result = new Array(); var arr = ID(name).childNodes; for (var j=0; j < arr.length; j++) if (arr[j].id) result.push(arr[j].id); return result; } function childrenIdList(top) { // var top = ID(id); var result = new Array(); for (var j=0; j < top.childNodes.length; j++) if (top.childNodes[j].nodeName == '#text') continue; else if (top.childNodes[j].id) result.push(top.childNodes[j].id); else if (top.childNodes[j].length > 0) result.push(childrenIdList(top.childNodes[j])); return result.toString(); } function romanNumeral(value) { var smallromans = (',i,ii,iii,iv,v,vi,vii,viii,ix').split(','); var bigromans = (',x,xx,xxx,xl,l,lx,lxx,lxxx,xc,c,cx,cxx,cxxx,cxl,cl,clx,clxx,clxxx,cxc,cc,ccx,ccxx,ccxxx').split(','); if (value < 1) return ''; else if (value > 4000) return 'mmmm'; var hundreds = Math.floor(value/100); if (hundreds < 1) hundreds = '' else hundreds = romanNumeral(hundreds).replace(/i/g,'c').replace(/v/g,'d').replace(/x/g,'m'); value = value % 100; var bigr = Math.floor(value/10); var smallr = value % 10; if (value < 10) return hundreds+smallromans[smallr]; else if (smallr == 0) return hundreds+bigromans[bigr]; else return hundreds+bigromans[bigr]+smallromans[smallr]; } function listMoveSelected(all, selected, movement) { if (movement == "ToTop") return listAppend(listIntersection(all,selected), listDelete(all, selected)); else if (movement == "ToBottom") return listAppend(listDelete(all, selected), listIntersection(all,selected)); var output = new Array(); var arr = all.split(','); var group = new Array(); if (movement == "Upward") arr = arr.reverse(); for (var j=0; j
'); text = reReplace(text, '(\r\n|\n)', '
'); return text; } function randomString(length) { var alphanum = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var str = ''; for (var k = 0; k < length; k++) { var val = parseInt(26*Math.random()); str += alphanum.substring(val,val+1); } return str; } function runAHAH(action, datalist, message) { var check_list = listLastList(datalist,'=',','); if (!validateFieldList(check_list)) return; var target = action + 'Result'; datalist = reReplace(datalist,',','&'); callAHAH('/Home/Action?RunAction='+action+'&'+passedDatastring(datalist), target, message); setVal(target,'intervalname',window.setInterval("checkAHAH('"+action+"')",getVal(target,'interval'))); setVal(target,'timeoutname',window.setTimeout("abandonAHAH('"+action+"')",getVal(target,'timeout'))); } function passedDatastring(datalist) { var result = new Array(); var arr = datalist.split('&'); for (var k=0; k < arr.length; k++) result.push(listFirst(arr[k],'=')+'='+encodeURIComponent(getInputValue(listLast(arr[k],'=')))); return result.join('&'); } function checkAHAH(action) { var target = action + 'Result'; var result = getHTML(target); if (result != '') { //alert(coalesce(getVal(target,'responsestring'),result)); //alert('action = '+action+'; target = '+target); //alert(result); //alert('here = '+result.length+' | '+result); if (eval('typeof '+'finish'+action) == 'function') eval('finish'+action+'(result)'); window.clearInterval(getVal(target,'intervalname')); window.clearTimeout(getVal(target,'timeoutname')); } return false; } function abandonAHAH(action) { var target = action + 'Result'; alert(getVal(target,'timeoutstring')); window.clearInterval(getVal(target,'intervalname')); return false; } function callAHAH(url, pageElement, callMessage, processFunct, endingFunct) { var myRand = parseInt(Math.random()*99999999); setHTML(pageElement, callMessage); try { req = new XMLHttpRequest(); // Firefox, etc. } catch (e) { try { req = new ActiveXObject("Msxm12.XMLHTTP"); // Some IE versions } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); // Some IE versions } catch (E) { req = false; } } } req.onreadystatechange = function() {responseAHAH(pageElement,processFunct,endingFunct); }; req.open("GET", url + '&rand=' + myRand, true); req.send(null); } function responseAHAH(pageElement, processFunct, endingFunct) { var output = ''; if (req.readyState == 4) { //alert('req.status = '+req.status); if (req.status == 200) { output = req.responseText; //alert(output.length+' = '+output); output = output.slice(output.indexOf('')+1,output.length); //alert(pageElement); if (processFunct) output = processFunct(output); //alert(output); setHTML(pageElement, output); //alert(getHTML(pageElement)); if (endingFunct) endingFunct(); } } } /// RUNNING tintxChecked tintChecked(); function toggleLibNode(name) { toggleNode(name); if (!isClosedNode(name) && getHTML(name+'Container') == '') { callAHAH('/Library/'+name+'?View=TreeSegment'+getValue('NodeToggleSetting'), name+'Container', 'Loading...'); } return false; } function togglePubNode(name) { toggleNode(name); var closed = isClosedNode(name); var url = ID('TreeURL'); if (url) url.innerHTML = modifyOpenNodelist(url.innerHTML, name, closed); var title_regexp = '[A-Za-z0-9 .,;:&"\'\(\)-]+'; var nodename = name+'NodeLink'; //parent.showURL(); //alert(document.URL); if (!closed && getVal(nodename,'Closed') == '') { setVal(nodename,'Closed',getHTML(nodename)); if (getVal(nodename,'Open') == '') setVal(nodename,'Open', reReplace(getHTML(nodename), '(
)(.*?)<\/a>', '$1<\/a>$2<\/b>')); } setHTML(nodename, getVal(nodename, closed ? 'Closed' : 'Open')); if (!closed && getHTML(name+'Container') == '') { if (000) recordPageEvent('/Pub/'+name+'?View=TreeSegment'); //alert('Pulling Tree/'+name+' INTO '+name+'Container'); if (parseInt(getValue('ServeTreeSetting'))) callAHAH('Tree/'+name, name+'Container','Loading...', linksToMainframe, expandTreeWindow); /// USING SERVEDATA TREE CALL else callAHAH('/Pub/'+name+'?View=TreeSegment'+getValue('NodeToggleSetting'), name+'Container','Loading...', linksToMainframe, expandTreeWindow); } return false; } function linksToMainframe(data) { if (getVal('TreeWindowParams','maxlines')) data = reReplace(data, ' href=([^ ]+)', ' href=$1 target=_top '); //data = reReplace(data, ' href=([^ ]+)', ' href=\"javascript:parent.chaxxngeURL(\'$1\');\"'); return data; } function expandTreeWindow() { var wparams = getValArray('TreeWindowParams','maxlines,linepixels,extrapixels','int'); if (!wparams.maxlines) return; var needlines = Math.min(treeHeight('PubContainerTree'),wparams.maxlines); var needpixels = needlines * wparams.linepixels + wparams.extrapixels; var wsize = windowSize(); //setVal('InsertPDF','height', 130 * value); /// CHANGE HEIGHT THIS WAY //setVal('OpenedArchiveTree','height',needpixels); //alert(needpixels); // alert(document.URL); //alert(window.opener.document.getVal('BrowseArchiveTree','Title')); if (wsize.height < needpixels) window.resizeBy(0, needpixels - wsize.height); } function showURL() { alert(document.URL); } function changeURL(url) { //alert('here'); document.location = url; } function modifyOpenNodelist(treestring, name, closed) { if (contains(treestring,'OpenNodes=')); else if (closed) return treestring; else return treestring+'&OpenNodes='+name; var nodelist = listLast(treestring,'='); return reReplace(treestring, '='+nodelist, '='+modifyNodelist(nodelist,name,closed)); } function modifyNodelist(nodelist, name, closed) { var head = listFirst(name,'-'); var tail = '-' + listRest(name,'-'); var arr = nodelist.split(';'); for (var k = 0; k < arr.length; k++) if (arr[k] == name && closed) return listDelete(nodelist,name,';'); else if (listFirst(arr[k]) == head) { if (tail == '-') return closed ? listDelete(nodelist,arr[k],';') : nodelist; if (closed) arr[k] = listDelete(arr[k], tail); else { arr[k] = reReplace(arr[k], head, head+','+tail); arr[k] = trimChar(listSort('*'+arr[k],','), '*'); } return arr.join(';'); } return nodelist + ';' + name; } function toggleNode(name) { var isclosed = isClosedNode(name); if (isClosedNode(name)) { setHTML(name+'Node', '[–]');/// '[--]' [—][-][--][+] setTagClass('ol', name+'Container', 'TreeNode'); setTagClass('span', name+'Closed', 'NoDisplay'); } else { setHTML(name+'Node', '[+]'); setTagClass('ol', name+'Container', 'TreeNodeHidden'); setTagClass('span', name+'Closed', 'inline'); } return false; } function isClosedNode(name) { return contains(getHTML(name+'Node'),'[+]'); } function openArchiveTree(name) { var iFrame = ID('OpenedArchiveTree'); if (browserUsed() != 'Firefox') { var html = iFrame.contentWindow.document.body.innerHTML; var line_arr = html.split(/<[Ll][Ii] /); setVal('OpenedArchiveTree','height',23 * line_arr.length + 4); } setDisplay(name,0); setDisplay('OpenedArchiveTree',1); } function treeHeight(name) { var html = getHTML(name); /// remove NoDisplay segments first var line_arr = html.split(/<[Ll][Ii] /); return line_arr.length; } function printPDFPages(pagerange) { if (pagerange == null) pagerange = 'Page'; if (pagerange == 'PageRange') pagerange = getInputValue('PageRange'); else if (pagerange == 'PubPrintRange') pagerange = getValue('PubPrintRange'); updatePDF(); updatePDF('/Controls=.+', '/Controls=Printing='+coalesce(pagerange,'Page')); window.setTimeout("updatePDF()",2000); closePopover('Print'); } function updatePDF(arg1, arg2) { if (arg1 == null && arg2 == null) { var src0 = currentPDF('src0'); if (src0 == '') setVal('InsertPDF','src0',currentPDF()); else setVal('InsertPDF','src',src0); } else if (arg2 == null) { setVal('InsertPDF','src',arg1); } else reReplaceVal('InsertPDF', 'src', arg1, arg2); return currentPDF(); } function currentPDF(item) { if (item == null) item = 'src'; return getVal('InsertPDF',item); } function togglePDFOptions(id) { if (id) { changePushField(id) applyPDFOptions(id.getAttribute('value')); } } // return false; } applyPDFOptions(); applyPDFSize(); function applyPDFOptions(opt_list) { var view = getValue('View'); if (!ID('PDFOptions') || !listHas('Search,PDF',view)) return; var options = getInputValue('PDFOptions'); if (opt_list == null) opt_list = options; var opt = opt_list.split(','); //alert(gextValue('View')); for (var k=0; k < opt.length; k++) switch (opt[k]) { case '': break; case 'MoreOptions': setDisplay('PDFMoreOptions', listHas(options,'MoreOptions')); break; case 'HideHighlighting': if (listHas(options,'HideHighlighting')) updatePDF(';Words=',';XWords='); else updatePDF(';XWords=',';Words='); break; case 'Toolbar': if (!listHas(options,'Toolbar')) updatePDF('Controls=Toolbar=[0-9]+',''); else if (contains(getVal('InsertPDF','src'),'Toolbar=')) updatePDF('Toolbar=[0-9]+','Toolbar=1'); else updatePDF('/([0-9]+)/', '/$1/Controls=Toolbar=1;'); break; case 'AddHighlighting': setPopover('AddHighlighting', listHas(options,'AddHighlighting') ? 'Open' : 'Close'); break; case 'Pages': setDisplay('PageJumplist', listHas(options,'Pages')); break; case 'RawText': setDisplay('PageRawText', view == 'PDF' && listHas(options,'RawText')); loadRawText(); break; case 'Contents': setDisplay('PageTOC', view == 'PDF' && listHas(options,'Contents')); break; default: } updateSetting('PDFOptions',options); if (listHas(options,'Show')) alert('SRC= '+currentPDF()); } function applyPDFSize(value) { if (!ID('PDFOptions') || !listHas('Search,PDF', getValue('View'))) return; else if (!ID('PDFSize')) return; else if (value == null) value = getInputValue('PDFSize'); else setListValue('PDFSize',value); setVal('InsertPDF','width', 100 * value); setVal('InsertPDF','height', 130 * value); updateSetting('PDFSize',value); } function loadRawText(pageID) { if (pageID == null) pageID = currentPageID(); if (listHas(getInputValue('PDFOptions'), 'RawText')) callAHAH('PageText/'+pageID, 'RawTextContainer','Loading...'); } function jumpToPDFPage() { var target = getInputValue('PDFPageNo'); var possibles = listLastList(getValue('PhysicalPageList'),'='); setValue('PDFPageNo','') if (target == '') return alert('No Page Selected'); else if (!listHas(possibles,target)) return alert('Incorrect Page Selected'); gotoPage(target); } function gotoPreviousPDFPage() { gotoPage(pageFromAPage(currentPDFPage()-1)); } function gotoNextPDFPage() { gotoPage(pageFromAPage(currentPDFPage()+1)); } function gotoPubPage(href) { //var pubID = reReplace(href, '.+Pub/([A-Za-z0-9_-]+).+', '$1'); //var page = reReplace(pubID, '.+[-][0]+([0-9]+).*', '$1'); var pubID = reGet(href, 'Pub/([A-Za-z0-9_-]+)'); var page = reGet(pubID, '[-][0]+([0-9]+)'); gotoPage(page); } function gotoPage(page) { setHTML('AtPage',page); var html = getHTML('PageJumplist'); html = reReplace(html, '><\/a>(([2-5][g])?[ix]?[0-9]+)<\/b>', '>$1<\/a>'); html = reReplace(html, '>'+page+'<\/a>', '><\/a>'+page+'<\/b>'); setHTML('PageJumplist', html); //} if (000) loadRawText(); gotoPDFPage(apageFromPage(page)); } function gotoPDFPage(apage) { if (apage) { updatePDF('/[0-9]+/', '/'+apage+'/'); if (1000) recordPageEvent(reReplace(reReplace(getVal('InsertPDF','src'),'[.][.]/[.][.]'),'/Controls=.*')); } } function pageFromAPage(apage) { if (!apage) return 0; var pagelist = getValue('PhysicalPageList'); var arr = pagelist.split(','); for (var k=0; k < arr.length; k++) if (listFirst(arr[k],'=') == apage) return listRest(arr[k],'='); return 0; } function apageFromPage(page) { if (!page) return 0; var pagelist = getValue('PhysicalPageList'); var arr = pagelist.split(','); for (var k=0; k < arr.length; k++) if (listRest(arr[k],'=') == page) return parseInt(listFirst(arr[k],'=')); return 0; } function currentPDFPage() { return parseInt(reGet(currentPDF(),'/([0-9]+)/')); } function currentPageID() { return getValue('physicalID')+'$'+leftPad(apageFromPage(getHTML('AtPage')),4,'0'); } function applyHighlighting() { var src = currentPDF(); var arr = ('Words,Range').split(','); for (var k = 0; k < arr.length; k++) { var type = arr[k]; var data = getInputValue('Highlight'+type); data = reReplace(data, '[ ,+]+', ','); if (data == ''); else if (contains(src,type+'=')) src = updatePDF(type+'=[^;]+', type+'='+data); else src = updatePDF(src+type+'='+data+';'); } //alert('NEW = '+src); } function tryAddToLibrary(here) { var clist = getInputValue('CheckList'); if (listHas('Article,Chapter',getValue('ArgType'))) { if (clist == '') { setIDClass('PubTopDescription,PubPDFDescription','PubItemHighlight'); setIDClass('AddToLibrary','ButtonFldHighlight'); setValue('CheckList',getValue('CurrentArgID')); return; } } else if (contains(getValue('NodeToggleSetting'),'HideCheck')) { setTagClass('input', 'CheckList[]', 'NodeCheck'); setValue('NodeToggleSetting',''); return; } if (clist == '') return alert('No Items Selected'); else if (1000 && getValue('CurrentAccountID') < 100) return alert('Adding Items to Library requires Login'); ///return requireAccountLogin('Add Items To Library', 'Accessing a Personal Library requires Account Login',''); //finishAddToLibrary('Successfully Added: '+clist); return false; runAHAH('AddToLibrary', 'AddList=CheckList', 'Adding Selected Items to Library...'); } function finishAddToLibrary(result) { alert(result); if (contains(result,'Successfully')) { setIDClass('PubTopDescription,PubPDFDescription',''); return clearChecklist(); } else return false; } function finishApplyLibChanges(result) { alert(result); if (contains(result,'Successfully')) { setDisplay('Changed','none'); setValue('LibStucture0', getValue('LibStructure')); return clearChecklist(); } else { return false; } } function applyLibChanges() { var structure0 = getValue('LibStructure0'); var structure = getValue('LibStructure'); var changelist = listChanges(structure0,structure); var removals = listDelete(listFirstList(structure0,'=',';'), listFirstList(structure,'=',';'), ';'); if (removals != '') changelist = changelist + ';Removals=' + removals alert(changelist); return false; setValue('ApplyLibChangesResult', changelist); return runAHAH('ApplyLibChanges', 'LibChanges=ApplyLibChangesResult', 'Applying Changes...'); } function listChanges(structure0, structure, xdelimiter) { if (xdelimiter == null) xdelimiter = ';'; var changes = new Array(); var arr = structure.split(xdelimiter).sort(); for (var k=0; k < arr.length; k++) if (!listHas(structure0,arr[k],xdelimiter)) changes.push(arr[k]); return changes.join(xdelimiter); } function toggleNotesPreview() { updateSetting('Options') refreshPreviewText(ID('TextNotes')); setDisplay('PreviewNotes', isChecked('ShowNotesPreview')); } function moveItems(choice) { if (choice == null) choice = radioValue('MoveItemChoice'); var checklist = getInputValue('CheckList'); if (checklist == '') return falseAlert('No Items Selected'); if (choice == 'ToAnotherShelf') moveTransferItems(checklist, ID('TransferChoice').value); else moveShiftItems(checklist, choice); changedLibStructure(); } function moveTransferItems(id_list, target) { var arr = id_list.split(','); for (var i=0; i < arr.length; i++) if (getVal(arr[i],'pubid') && ID(arr[i]).parentNode.id != libID(target)) ID(libID(target)).appendChild(ID(arr[i])); } function moveShiftItems(id_list, choice) { var arr = id_list.split(','); var groups_done = ''; for (var i=0; i < arr.length; i++) if (!listHas(groups_done, ID(arr[i]).parentNode.id)) { groups_done += ','+ID(arr[i]).parentNode.id; var container = ID(arr[i]).parentNode; var sibs = childrenIdArray(container.id); var new_list = listMoveSelected(sibs.toString(), arr.toString(), choice); var new_arr = new_list.split(','); for (var j=0; j < sibs.length; j++) container.appendChild(ID(new_arr[j])); } } function deleteItems() { var arr = checkfieldArray('CheckList'); if (!arr.length) return falseAlert('No Items Selected'); for (var j=0; j < arr.length; j++) ID(arr[j]).parentNode.removeChild(ID(arr[j])); clearChecklist(); changedLibStructure(); } function changedLibStructure() { var lstructure = libStructure(); setValue('Libstructure', lstructure); setDisplay('ChangedLib'); } function libStructure() { var libid = getValue('libID'); var clist = childrenIdArray(libID(libid)).toString(); var result = libid+'='+clist; if (getValue('Type') == "Library") { result = reReplace(result, 'Lib([0-9]+)', '$1'); var arr = reReplace(clist, 'Lib([0-9]+)', '$1').split(','); for (var j=0; j < arr.length; j++) result += ';'+arr[j]+'='+childrenIdArray(libID(arr[j])).toString(); } return result; } function libID(name) { return 'Lib'+name+'Container'; } function toggleLibNotes(value) { if (value == null) value = toggleValue('HideNotes'); setTagClass('div','LibNotes', listHas(value,'HideNotes') ? 'NoDisplay' : 'LibNotes'); setHTML('HideNotes', listHas(value,'HideNotes') ? 'Show Notes' : 'Hide Notes'); } function toggleFilters(name,value) { if (value == null) value = toggleValue('No'+name); setIDClass(name, listHas(value,'No'+name) ? 'NoDisplay' : 'Block'); setHTML('No'+name, listHas(value,'No'+name) ? 'Use Filters' : 'No Filters'); } function toggleLibShelves(value) { if (value == null) value = toggleValue('OpenShelves'); var shelf_list = listRest(listFirst(getValue('LibStructure0'),';'),'='); setIDClass(listMasked(shelf_list,'Lib^Container'), listHas(value,'OpenShelves') ? 'ShelfOpen' : 'ShelfClosed'); setHTML(listMasked(shelf_list,'Lib^Node'), listHas(value,'OpenShelves') ? '[--]' : '[+]'); setHTML('OpenShelves', listHas(value,'OpenShelves') ? 'Close Shelves' : 'Open Shelves'); } function tryEditLibItem() { var arr = checkfieldArray('CheckList'); if (arr.length) var itemID = arr[0]; else if (getValue('Type') == 'Shelf') var itemID = 'Lib'+getValue('libID'); else return alert('No Item Selected'); if (reMatch(itemID,'^Lib[0-9]+$')) { setValue('EditShelfID', itemID); setValue('ShelfTitle', getInputValue(itemID+'Title')); setValue('ShelfDescription', getInputValue(itemID+'Description')); return openPopover('EditShelf'); } else { setValue('NotesItemID', itemID); getCurrentLibNotes(itemID); return openPopover('EditLibNotes'); } } function getCurrentLibNotes(itemID) { if (itemID == null) itemID = getValue('NotesItemID'); var html = reReplace(getHTML(itemID), ']+>'); var notes = trim(reGet(html, '>NOTES:([^~]+?)<\/div>')); html = reReplace(html, ''); setHTML('ShownItemID', html); setValue('TextNotes',notes); setHTML('PreviewText',notes); } function clearLibNotes() { setValue('TextNotes',''); setHTML('PreviewText',''); } function showTag() { var tag = this.tagName; alert('here '+tag); } function testFunction() { //var xlist = checkfieldArray('CheckList'); //var xlist = getInputValue('PDFxSize'); //var xlist = document.getElementsByName('CheckList'+'[][]').length; /// var xlist = arr.length; //alert(ID('TestFrame').src); //reReplaceVal('TestFrame','src','CoverThumb','CoverTiny'); //setDimensions('TestFrame', 100, 200); // (([^<>()\[\],;]+[<(\[][A-Za-z0-9--]\w{2,}@[A-Za-z0-9-]{2,}[.][A-Za-z]{2,8}[)>\]]|[ ]*[A-Za-z0-9--]\w{2,}@[A-Za-z0-9-]{2,}[.][A-Za-z]{2,8})([ ]*(,|;)[ ]*([^<>()\[\],;]+[<(\[][A-Za-z0-9--]\w{2,}@[A-Za-z0-9-]{2,}[.][A-Za-z]{2,8}[)>\]]|[ ]*[A-Za-z0-9--]\w{2,}@[A-Za-z0-9-]{2,}[.][A-Za-z]{2,8}))*)? //alert(line_arr[0]); //alert('Length = '+trxeeHeight('PubContainerTree')); //alert(getHTML('Abolitionist-197')); //var wsize = windowSize(); //alert('Height = '+wsize.height+' Width = '+wsize.width); //alert(getVal('TrexeWindow','linepixels')+' '+getVal('TrexeWindow','maxlines')); //var junk = alert; //junk('something'); //var data = getxValArray('TrxeeWindow', 'linepixels,extrapixels,maxlines'); //alert (data.xextrapixels); //var data = getVxxxalArray('TrxeeWindow', 'linepixels,extrapixels,maxlines','int'); //alert(data.linepixels); if (1000) alert(document.URL); if (000) setDisplay('InsertTree',1); //
  • //setVal('TestFrame','width',100); // setVal('TestFrame','height',200); // //myArray = myString.split(/,/) //var apage = parseInt(currentPDFPage()); //alert(apage+1); //alert(pageFromAPage(parseInt(currentPDFPage())+1)); //alert(target);//pageFromAPage(apage)); //alert(); // function gotoNextPDFPage() { //return gotoPage(pageFromAPage(currentPDFPage()+1)); } //alert(getValue('ToggcleList')); //var xlist = listRxest(listFirst(getValue('LibStructure0'),';'),'='); //xlist = listMasked(xlist,'Lib^Container'); //var xstring = 'No Fraxmes'; //setHTML('Junky',xstring); //var randy = parseInt(Math.raxndom()*36); //alert(randomString(4)); //alert(getHTML('Junky')); } function runGoogleSearch() { var str = getInputValue('GoogleSearchText'); str = 'http://www.google.com/#h1=en&q=' + urlencode(str + ' site:www.OneNation.org'); location.href = str; } function applyShareLink() { setDisplayList(listMasked(getInputValue('ShareLink'),'ShareLink^,ShareLinkHTML^'), listMasked('0,1,2','ShareLink^,ShareLinkHTML^')); } function rememberMe() { var Email = getInputValue('AccountEmail'); var Password = getInputValue('AccountPassword'); updateCookie('AccountEmail='+Email+'~AccountPassword='+Password); //alert ('Here'); //return true; //updateSetxtingCookie(); } function toggleAccountRegistration() { resetCaptcha(); return !setDisplayList('AccountRegistrationSection', 'AccountLoginSection'); } function resetCaptcha() { var str = randomString(6) setHTML('Captcha',''); setValue('CaptchaResponse',''); setValue('CaptchaString',str); } function tryAccountLogout() { setDisplayList('LoggedOut', 'LoggedIn'); if (ID('HomeLogFields')) { setHTML('HomeLogFields', getHTML('HomeLogFields')+getHTML('TopLogFields')); setHTML('TopLogFields',''); } updateCookie('CurrentAccountID=0~CurrentAccountName=~CurrentAccountEmail=~StartingTime=~Security='); } function tryAccountLogin() { return runAHAH('AccountLogin', 'AccountEmail,AccountPassword', 'Authenticating...'); } function finishAccountLogin(result) { if (!contains(result,'CurrentAccountID=')) { alert(result); return false; } else { alert('Successful Login'); //alert('Resultstring = '+result); updateCookie(result); /// INCLUDE SECURITY HASHING IN result to prevent Cookie editing setDisplayList('LoggedIn','LoggedOut'); var arr = result.split('~'); setValue('CurrentAccountID',listLast(arr[0],'=')); setHTML('CurrentAccountIDShown',listLast(arr[0],'=')); setHTML('CurrentAccountName',listLast(arr[1],'=')); setValue('CurrentAccountEmail',listLast(arr[2],'=')); setHTML('CurrentSecurityShown',listLast(arr[3],'=')); setHTML('TopLogFields', getHTML('TopLogFields')+getHTML('HomeLogFields')); setHTML('HomeLogFields',''); closePopover('AccountLogin'); return true; } } function finishEstablishAccount(result) { if (contains(result,'Captcha')) { resetCaptcha(); focusField('CaptchaResponse'); return falseAlert('Incorrect Captcha - Try Again'); } else if (1000 && contains(result,'CurrentAccountID=')) { alert ('Account Successfully Established; Now Logging You In'); return finishAccountLogin(result); return true; } else { alert(result); return false; } } function finishSaveSearch(result) { alert(result); closePopover('SaveSearch'); return true; } function toggleForgotPassword() { focusField('AccountEmail'); setDisplay('ForgotPassword',0); setIDClass('SendPassword','SmallButton'); } function finishSendPassword(result) { setDisplay('ForgotPassword'); setDisplay('SendPassword',0); alert(result); closePopover('AccountLogin'); return true; } function submitSendEmail(here) { var flags = getInputValue('PopFlags'); alert('xxx'); if (contains(flags,'RememberInfo')) { alert('Saving Info'); updateSetting('SenderName'); updateSetting('SenderAddress'); } return false; } function makeDonation() { setHTML('DonationSize', ' '+getInputValue('Donation')+' <\/b> '); setHTML('RecipientName', ' '+getInputValue('Recipient')+' <\/b> '); setTagClass('div', 'Donate', 'NoDisplay'); setTagClass('div', 'ConfirmDonate', ''); } function toggleExtendedEmail() { setTagClass('tr', 'ExtendedEmail', ID("ExtendedOptions").checked ? 'Null' : 'NoDisplay'); } function requireAccountLogin(title, warning, attempted) { setHTML('AccountLoginTitle', title); setHTML('AccountLoginWarningText', getHTML('AccountLoginWarningText').replace(/Warning/g, warning)); setValue('AttemptedAction',attempted); setDisplay('AccountLoginWarning'); openPopover('AccountLogin'); return false; } function toggleUserReview(setting) { if (getValue('CurrentAccountID') < 100) { requireAccountLogin('Write Review', 'Writing a Review requires Account Login', "WriteReview"); //"toggleUserReview('Write');"); } else if (setting == 'Write') setDisplayList('WriteUserReview','DisplayUserReview'); else if (setting == 'Cancel') setDisplayList('DisplayUserReview','WriteUserReview'); else if (setting == 'Publish') { } } //toggleReviewPreview(); function toggleReviewPreview() { updateSetting('Options') refreshPreviewText(ID('Bodytext')); setDisplay('PreviewReview', isChecked('ShowReviewPreview')); } function uninstalledFeature(name) { alert('The "'+splitByUpper(name)+'" feature is not currently installed'); } function openPopover(name) { var popovers = new Array(); var k = 0; var arr = document.getElementsByTagName('div'); for (var j=0; j < arr.length; j++) if (contains(arr[j].id,'Popover')) popovers[k++] = reReplace(arr[j].id,'Popover'); //alert(popovers.join(',')); return false; for (var j=0; j < popovers.length; j++) closePopover(popovers[j]); if (name != 'Print') setIDClass('InsertPDF', 'hidden'); setPopover(name,'Open'); } function closePopover(name) { setIDClass('InsertPDF', 'normal'); setPopover(name,'Close'); } function setPopover(name, status) { setIDClass(name+'Popover', (status == 'Open') ? 'popoverOpen' : 'popover' ); switch (name) { case '': break; case 'SharePage': /// try replace links to CurrxxentURL with links to (updated) shareURL; setHTML('shareURL', coalesce(getHTML('TreeURL'),getHTML('shareURL'))); break; case 'SendAsEmail': setValue('emailURL',coalesce(getHTML('TreeURL'),getValue('CurrentURL'))); break; default: } return false; } function toggleValue(name) { var value = getValue('ToggleList'); if (name == null) return value; if (listHas(value,name)) value = listDelete(value,name); else value = trimChar(value+','+name, ','); setValue('ToggleList', value); updateSetting('ToggleList'); return value; } function updateProfilerSetting() { updateSetting('PROFILER_ACTIVE'); var status = getInputValue('PROFILER_ACTIVE'); setDisplay('ProfilerActiveSign', status == 1); }