
/* - rhaptosutils.js - */
// http://cnx.org/portal_javascripts/rhaptosutils.js?original=1
function createCookie(name,value,days,path){var expires;var path;var newCookie;if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString()}
else{expires=""}
if(path){path="/"+path} else{path="/"}
newCookie=name+"="+value+expires+"; path="+path;document.cookie=newCookie}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ') c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}
return null}
function getElementsByClassName(classname){var isOpera=navigator.userAgent.indexOf("Opera")!=-1?true:false;var rl=new Array();var re=new RegExp('(^| )'+classname+'( |$)');var ael=document.all&&!isOpera?document.all:document.getElementsByTagName('*');for(i=0,j=0 ;i<ael.length ;i++){if(re.test(ael[i].className)){rl[j]=ael[i];j++}}
return rl}
twistycookie="collapsibleElements";
function twistyRead(){var retval=new Object();var cookievalue=readCookie(twistycookie);if(cookievalue!=null){var entries=cookievalue.split('|');for(var i=0;i<entries.length;i++){var entry=entries[i];var broken=entry.split('=');key=broken[0];val=broken[1];retval[key]=val}}
return retval}
function twistyWrite(key,val){var cookiestr="";var cookieinfo=twistyRead();cookieinfo[key]=val;for(i in cookieinfo){cookiestr=cookiestr+i+"="+cookieinfo[i]+"|"}
cookiestr=cookiestr.substring(0,cookiestr.length-1);createCookie(twistycookie,cookiestr,365)}
function child_has_class(parelt,classstr){var retval=null;var children=parelt.childNodes;var child;for(var c=0;c<children.length;c++){child=children[c];if(child.className==classstr){retval=child;break}}
return retval}
function twist_toggle(id,contentdisplay){if(contentdisplay==undefined){contentdisplay='block'}
var contents=document.getElementById(id+'_contents').style;var expand=document.getElementById(id+'_expand').style;var collap=document.getElementById(id+'_collapse').style;var hiddenelt=document.getElementById(id+'_hidden_contents');var hidden=new Object();if(hiddenelt){hidden=hiddenelt.style}
var expanddisplay=expand.display;expand.display=collap.display;collap.display=expanddisplay;if(contents.display=='none'){contents.display=contentdisplay;hidden.display='none'} else{contents.display='none';hidden.display=contentdisplay}
twistyWrite(id,contents.display)}

