| Related sites for http://www.afsc.org/default.htm |
| The_Buddhism_of_T\'ien_T\'ai Provides a historical perspective, explanation of teachings and practice, and lists literary works important to the teachings of Buddhism as taught by Chih-i. | | SkyDancing_Tantra_UK Tantra Workshops for Modern Lovers - rediscovering our innocence, healing our shame, expanding and celebrating our erotic energy, and uniting sex, heart and spirit. | | ABA_Section_of_Intellectual_Property_Law The largest, and probably most influential, intellectual property organization in the U.S. | | Tasneem,_Kashar About the author, his family, friends and homeland. Includes current projects, hobbies and pictures of Dubai | | COPINE_Project Dedicated to fight sexual exploitation of children on the internet through forensic and clinical psychology. | | Tribute_page_in_honor_of_POW/MIA\'s The story of POW/MIA's 1LT Francis Barnes Midnight, USAF; SFC Charles Wesley Lindewald, Jr, USA; Lcpl Bruce Wayne Staehli, USMC; ENFN George Ray Posey, USN. | | Kotowski Descendants of John Spencer Martin, Johann Nay and John Ashcraft as compiled by N L Kotowski from Parkersburg, WV USA. | | Levelheaded Provides training, consultancy and other support services for organizations. Press clips, corporate and service information. | | Wannabe_in_my_Gang? O'Mahoney exposes gangland myths that have made legends of those who claim responsibility for mayhem and murder. | | Suite101_com__Living_With_Nature Includes links to several dozen environmental organizations and independent Web sites. | | A_Belief_in_God__What_does_the_Bible_say? A brief outline of where agnostics and atheists might find answers in the Bible. | | Jewish__Bride On line shopping for gifts and items for Jewish celebrations. | | Background_and_Legal_Issues_Related_to_Stem_Cell_Research Recent legislative, administrative and judicial actions concerning stem cell research. (June 12, 2002) | | A_Report_from_Congo Background and current status of the war, by the Economist. (July 4, 2002) | | Stafford,_Paul Profile, photos and interests; in Watford Herts, United Kingdom. | | Shia_Muslims_in_Singapore_and_Kansas_City Majalis from Kansas City and events from Singapore. Has some articles and links. | | Jean\'s_Haunted_Halloween Fun graphics collection of rare animations, gifs, midis, cats, and witches. | | Laurence_Samuel_Holdstock Information on this young soldier, who was killed at Loos in 1915 fighting in the British army. | | Teddy_Roosevelt Provides a biography of American President Theodore (Teddy) Roosevelt. Includes his picture and a list of his Supreme Court appointments. | | What_Befell_The_Sons_Of_Eli,_The_Ark,_And_The_People Chapter by the first-century Jewish historian Josephus. |
|
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
AFSC Media: In theirown words
Juan, age 18, was the target of an immigrationraid.
This is his story. MoreImmigration Stories>
When Immigrants Arrive ...
What happens when immigrants arrive ina smalltown?Seevideo on YouTube >
Making the Desert Bloom
The community around La Placita Gardenssaved land that had been farmed for 300 yearsfrom New Mexican developers. Then they turnedto the AFSC staff there for training, technicalassistance, and resources. Now La Placitagives at-risk youth a chance to learn tofarm.
Readtheir story >
It's My Life!
A guide to alternatives after high school
Take a look >
This website is licensed under a
Creative Commons License
.
Home |
Search Site |
Contact Us |
Privacy Policy |
Site Map |
Login
AFSC · 1501 Cherry Street, Philadelphia, PA 19102 · 215-241-7000 · web@afsc.org
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src="http://www.afsc.org/default.htm/" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
var pageTracker = _gat._getTracker("UA-395473-1");
pageTracker._trackPageview();
|
|