| Related sites for http://www.afsc.org/pdesc/pd219.htm |
| Tenant_Resource_Center Information about landlord-tenant law for Wisconsin residents | | Inmate_Connections Profiles and photos of men and women prisoners seeking penpals. Charges a fee to add listings; addresses are free. | | MASSPIRG__Tough_On_Tobacco Tobacco control and prevention programs, information on youth and tobaco, the tobacco industry, and local clean air initiatives. | | Vance_Lancaster_Graduate_Research_Grants Endowment supporting those undertaking a masters or doctorate at the University of Chicago. | | Legal South Florida wedding officiant now performs ceremonies for domestic partnership agreements. | | The_Future_of_Psychiatry A research account into the logical status of theories used in psychiatry which concludes that psychiatry is not a science. | | Mustofa,_Khabib Includes personal information, research, photographs, and links. | | University_of_Birmingham Department of Philosophy - Birmingham, England - BA (single and joint degrees), MPhil, PhD | | \'Lil_Haunted_Cam\'s_Page_ Footage from four webcams located in a 115 + year old building that has been investigated by paranormal investigators who determined the house is haunted. | | Kingdom_Identity_Ministries Describing itself as an outreach ministry to God's chosen white European people. Includes doctrinal statement and sales of books, audio, and video tapes. | | UPROAR United Portmarnock Residents Opposing Another Runway. Residents are actively campaigning against the opening of an additional runway at Dublin on the bases of increase pollution and noise. | | Shrimali_Brahmin_Samaj The origin, history, culture and tradition of the Shrimali brahmin community. | | Gamma_Gamma_Chi_Sorority,_Inc The first halah sorority for Muslim women. Membership information, about us, FAQs. | | BBC_News_Country_Profile__North_Korea Overview with key facts, figures and dates. Includes The Secret State which explains the background of nuclear tensions, the divided peninsula and life inside North Korea. | | Vince_Myers_Ministries Pastor and Evangelist Vince and Marianne Myers spreads the Gospel and distributes food, clothes, furniture, and household items to the needy from Fort Myers, Florida. | | Juan_Fernández_Armesto Specialist in international commercial arbitration and Professor of Commercial Law at Comillas University in Madrid. | | German_Reigning_Houses A list of the rulers of the German states from 1815 to 1918. | | Friesian_School__Devotionalistic_Gods_in_Hinduism Different aspects of the Gods are explained in this research article. | | After_Saddam_Hussein_-_92_12 Atlantic Unbound: The Atlantic Monthly Magazine Online | | Medicaid_in_New_Jersey Probate attorney Kenneth Vercammen, an author on Wills for the ABA, provides details and links. |
|
American Friends Service Committee - Quaker values in action
var useless = 0;
// CSS3MultiColumn - a javascript implementation of the CSS3 multi-column module
// v1.02 beta - Jan 08 2008
// Copyright (c) 2005 Cdric Savarese
// This software is licensed under the CC-GNU LGPL
// For additional information, see : http://www.csscripting.com/
// Supported Properties:
// column-count
// column-width
// column-gap
// column-rule
// Unsupported Properties:
// column-rule-width (use column-rule instead)
// column-rule-style (use column-rule instead)
// column-rule-color (use column-rule instead)
// column-span
// column-width-policy
// column-space-distribution
function CSS3MultiColumn() {
//alert('Development Version');
var cssCache = new Object();
var splitableTags = new Array('P','DIV', 'SPAN', 'BLOCKQUOTE','ADDRESS','PRE', 'A', 'EM', 'I', 'STRONG', 'B', 'CITE', 'OL', 'UL', 'LI' );
var pseudoCSSRules = new Object();
var ut = new CSS3Utility();
var debug = ut.debug;
if(document.location.search.match('mode=debug')) var isDebug = true;
else var isDebug = false;
var bestSplitPoint = null;
var secondSplitPoint = null;
var secondSplitBottom = 0;
var documentReady = false;
// INITIALIZATION
ut.XBrowserAddEventHandler(window,'load',function() { documentReady = true; processElements(); } );
loadStylesheets();
// CSS PARSING
// --------------------------------------------------------------------------------------
// loadStylesheets:
// Loop through the stylesheets collection and load the css text into the cssCache object
function loadStylesheets() {
if(document.styleSheets) { // Firefox & IE
// initialize cache
for(var i=0;i < document.styleSheets.length;i++) {
cssCache[document.styleSheets[i].href] = false;
}
// load css in the cache
for(var i=0;i < document.styleSheets.length;i++) {
loadCssCache(document.styleSheets[i], 'parseStylesheets');
}
} else if (document.getElementsByTagName) { // OPERA
var Lt = document.getElementsByTagName('link');
// initialize cache
for(var i= 0; i "*.class1"
.replace(IMPLIED_SELECTOR, ASTERISK);
};
// convert css selectors to a stream of tokens and filters
// it's not a real stream. it's just an array of strings.
function toStream(selector) {
if (STANDARD_SELECT.test(selector)) selector = " " + selector;
return selector.match(STREAM) || [];
};
var pseudoClasses = { // static
// CSS1
"link": function(element) {
for (var i = 0; i < document.links; i++) {
if (document.links[i] == element) return true;
}
},
"visited": function(element) {
// can't do this without jiggery-pokery
},
// CSS2
"first-child": function(element) {
return !previousElement(element);
},
// CSS3
"last-child": function(element) {
return !nextElement(element);
},
"root": function(element) {
var document = element.ownerDocument || element.document;
return Boolean(element == document.documentElement);
},
"empty": function(element) {
for (var i = 0; i < element.childNodes.length; i++) {
if (isElement(element.childNodes[i]) || element.childNodes[i].nodeType == NODE_TEXT) return false;
}
return true;
}
// add your own...
};
var QUOTED = /([\'\"])[^\1]*\1/;
function quote(value) {return (QUOTED.test(value)) ? value : "'" + value + "'"};
function unquote(value) {return (QUOTED.test(value)) ? value.slice(1, -1) : value};
var attributeSelectors = [];
function attributeSelector(attribute, compare, value) {
// properties
this.id = attributeSelectors.length;
// build the test expression
var test = "element.";
switch (attribute.toLowerCase()) {
case "id":
test += "id";
break;
case "class":
test += "className";
break;
default:
test += "getAttribute('" + attribute + "')";
}
// continue building the test expression
switch (compare) {
case "=":
test += "==" + quote(value);
break;
case "~=":
test = "/(^|\\s)" + unquote(value) + "(\\s|$)/.test(" + test + ")";
break;
case "|=":
test = "/(^|-)" + unquote(value) + "(-|$)/.test(" + test + ")";
break;
}
push(attributeSelectors, new Function("element", "return " + test));
};
attributeSelector.prototype.toString = function() {
return attributeSelector.PREFIX + this.id;
};
// constants
attributeSelector.PREFIX = "@";
attributeSelector.ALL = /\[([^~|=\]]+)([~|]?=?)([^\]]+)?\]/g;
// class methods
attributeSelector.ID = function(match, attribute, compare, value) {
return new attributeSelector(attribute, compare, value);
};
// select a set of matching elements.
// "from" is an array of elements.
// "token" is a character representing the type of filter
// e.g. ">" means child selector
// "filter" represents the tag name, id or class name that is being selected
// the function returns an array of matching elements
function select(from, token, filter) {
//alert("token="+token+",filter="+filter);
var namespace = "";
if (NAMESPACE.test(filter)) {
filter = filter.split("|");
namespace = filter[0];
filter = filter[1];
}
var filtered = [], i;
switch (token) {
case " ": // descendant
for (i in from) {
if(typeof from[i]=='function') continue;
var subset = getElementsByTagNameNS(from[i], filter, namespace);
for (var j = 0; j < subset.length; j++) {
if (isElement(subset[j]) && (!namespace || compareNamespace(subset[j], namespace)))
push(filtered, subset[j]);
}
}
break;
case ">": // child
for (i in from) {
var subset = from[i].childNodes;
for (var j = 0; j < subset.length; j++)
if (compareTagName(subset[j], filter, namespace)) push(filtered, subset[j]);
}
break;
case "+": // adjacent (direct)
for (i in from) {
var adjacent = nextElement(from[i]);
if (adjacent && compareTagName(adjacent, filter, namespace)) push(filtered, adjacent);
}
break;
case "~": // adjacent (indirect)
for (i in from) {
var adjacent = from[i];
while (adjacent = nextElement(adjacent)) {
if (adjacent && compareTagName(adjacent, filter, namespace)) push(filtered, adjacent);
}
}
break;
case ".": // class
filter = new RegExp("(^|\\s)" + filter + "(\\s|$)");
for (i in from) if (filter.test(from[i].className)) push(filtered, from[i]);
break;
case "#": // id
for (i in from) if (from[i].id == filter) push(filtered, from[i]);
break;
case "@": // attribute selector
filter = attributeSelectors[filter];
for (i in from) if (filter(from[i])) push(filtered, from[i]);
break;
case ":": // pseudo-class (static)
filter = pseudoClasses[filter];
for (i in from) if (filter(from[i])) push(filtered, from[i]);
break;
}
return filtered;
};
var getElementsByTagNameNS = (isMSIE) ? function(from, tagName) {
return (tagName == "*" && from.all) ? from.all : from.getElementsByTagName(tagName);
} : function(from, tagName, namespace) {
return (namespace) ? from.getElementsByTagNameNS("*", tagName) : from.getElementsByTagName(tagName);
};
function compareTagName(element, tagName, namespace) {
if (namespace && !compareNamespace(element, namespace)) return false;
return (tagName == "*") ? isElement(element) : (isXML) ? (element.tagName == tagName) : (element.tagName == tagName.toUpperCase());
};
var PREFIX = (isMSIE) ? "scopeName" : "prefix";
function compareNamespace(element, namespace) {
return element[PREFIX] == namespace;
};
// return the previous element to the supplied element
// previousSibling is not good enough as it might return a text or comment node
function previousElement(element) {
while ((element = element.previousSibling) && !isElement(element)) continue;
return element;
};
// return the next element to the supplied element
function nextElement(element) {
while ((element = element.nextSibling) && !isElement(element)) continue;
return element;
};
function isElement(node) {
return Boolean(node.nodeType == NODE_ELEMENT && node.tagName != "!");
};
// use a baby push function because IE5.0 doesn't support Array.push
function push(array, item) {
array[array.length] = item;
};
// fix IE5.0 String.replace
if ("i".replace(/i/,function(){return""})) {
// preserve String.replace
var string_replace = String.prototype.replace;
// create String.replace for handling functions
var function_replace = function(regexp, replacement) {
var match, newString = "", string = this;
while ((match = regexp.exec(string))) {
// five string replacement arguments is sufficent for cssQuery
newString += string.slice(0, match.index) + replacement(match[0], match[1], match[2], match[3], match[4]);
string = string.slice(match.lastIndex);
}
return newString + string;
};
// replace String.replace
String.prototype.replace = function (regexp, replacement) {
this.replace = (typeof replacement == "function") ? function_replace : string_replace;
return this.replace(regexp, replacement);
};
}
return cssQuery;
}();
// Cross-Browser event handler.
CSS3Utility.prototype.XBrowserAddEventHandler = function(target,eventName,handlerName) {
if(!target) return;
if (target.addEventListener) {
target.addEventListener(eventName, function(e){eval(handlerName)(e);}, false);
} else if (target.attachEvent) {
target.attachEvent("on" + eventName, function(e){eval(handlerName)(e);});
} else {
// THIS CODE NOT TESTED
var originalHandler = target["on" + eventName];
if (originalHandler) {
target["on" + eventName] = function(e){originalHandler(e);eval(handlerName)(e);};
} else {
target["on" + eventName] = eval(handlerName);
}
}
// Keep track of added handlers.
var l = this.handlerList.length;
this.handlerList[l] = new Array(2);
this.handlerList[l][0] = target.id;
this.handlerList[l][1] = eventName;
// see http://weblogs.asp.net/asmith/archive/2003/10/06/30744.aspx
// for a complete XBrowserAddEventHandler
}
// getPseudoCssRules()
// Constructor for a pseudo-css rule object
// (an unsupported property, thus not present in the DOM rules collection)
// Constructor parameters
// ----------------------
// the css property name
// the stylesheet (as a text stream)
// Object properties:
// ------------------
// selector (string)
// property (string)
// value (string)
CSS3Utility.prototype.getPseudoCssRules = function(propertyName, serializedStylesheet) {
this.cssRules = new Array();
var valuePattern = propertyName.replace("-","\-")+"[\\s]*:[\\s]*([^;}]*)[;}]";
var selectorPattern = "$";
var regx = new RegExp(valuePattern,"g");
var regxMatch = regx.exec(serializedStylesheet);
var j=0;
while(regxMatch){
var str = serializedStylesheet.substr(0,serializedStylesheet.substr(0,serializedStylesheet.indexOf(regxMatch[0])).lastIndexOf('{'));
var selectorText = str.substr(str.lastIndexOf('}')+1).replace(/^\s*|\s*$/g,"");
// ignore commented rule !!
this.cssRules[j] = new Object();
this.cssRules[j].selectorText = selectorText;
this.cssRules[j].property = propertyName;
this.cssRules[j].value = regxMatch[1].replace(/(\r?\n)*/g,""); // suppress line breaks
j++;
regxMatch = regx.exec(serializedStylesheet);
}
}
// Generates a random ID
CSS3Utility.prototype.randomId = function () {
var rId = "";
for (var i=0; i
.embedded-indented
{
border : 0px solid black ! important;
display: block;
padding-top: 2px;
padding-bottom: 3px;
padding-left: 20px;
color: #e1dfce;
text-decoration: none;
}
Email this page
#sitecontainer {
background-color:#8c7b51;
}
#rightBox .breadCrumbs {
background-color:#e1dfce;
}
#leftBox #navLeft h2 {border:none !important;}
#extra p#search {display:block;}
.bling-joinform #join p.msg {display:block;}
#extra h3 {display:none}
#extra p {display:none;}
This
Page Has Moved
< Back
to Previous Page
We’re
sorry, but there isn’t a page at that address on our website.
The page may have been archived. You
may visit the AFSC Web Archive.
If you know the old address you are looking for,
try changing the 'www.afsc.org' to 'tools.afsc.org' to find
the page in our Web Archive.
(e.g. the page that was www.afsc.org/news/2000/annan.htm
has become tools.afsc.org/news/2000/annan.htm)
Please try our Search Page,
our Issues
Index, or our AFSC Locations pages
to find current information.
Or, return to the last
page you visited.
The AFSC Web Team.
^ Top of page
Search site
This website is licensed under a
Creative Commons License
.
Home |
Search Site |
Contact Us |
Privacy Policy |
Site Map |
Login
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src="http://www.afsc.org/pdesc/pd219.htm/" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
var pageTracker = _gat._getTracker("UA-395473-1");
pageTracker._trackPageview();
|
|